;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Logo Pagbenk Seu dinheiro rende mais
Topo

Queda em serviços a famílias pode estar ligada à inflação e menor renda, diz IBGE

Os serviços prestados às famílias ainda operavam em janeiro 13,2% abaixo do patamar do pré-pandemia - Getty Images
Os serviços prestados às famílias ainda operavam em janeiro 13,2% abaixo do patamar do pré-pandemia Imagem: Getty Images

Daniela Amorim

No Rio

16/03/2022 14h04Atualizada em 16/03/2022 14h54

A inflação, a perda de renda e o desemprego ainda elevado podem ter impactado o desempenho dos serviços prestados às famílias em janeiro, afirmou Rodrigo Lobo, gerente da Pesquisa Mensal de Serviços do Instituto Brasileiro de Geografia e Estatística (IBGE). O volume de serviços prestados no País encolheu 0,1% em janeiro ante dezembro. A atividade de serviços prestados às famílias encolheu 1,4% no mesmo período.

"Eu tendo a crer que possa ser alguma coisa mais conjuntural, mais relacionada a aumentos de preços de forma geral, menor renda, menor nível de emprego", apontou Lobo.

Ele ressalta que, a despeito do recrudescimento da pandemia em janeiro pelo aumento de contaminações pela variante Ômicron do coronavírus, não houve endurecimento à restrição de funcionamento de estabelecimentos.

"Dado também que essa atividade (de serviços às famílias) vinha de nove meses de crescimentos sequenciais, com um ganho acumulado de 60% nesse período, pode ser que essa base de comparação também tenha influenciado", disse Lobo. "Pode tanto ser decorrente de uma base de comparação elevada, e pode ser que retome sua trajetória de crescimento, ou pode ser que tenha encontrado um limite, limites impostos por renda menor, altas de preços, menor nível de emprego. Pode ser mais isso do que por receio das famílias de consumir serviços de caráter presencial", completou.

Os serviços prestados às famílias ainda operavam em janeiro 13,2% abaixo do patamar do pré-pandemia, enquanto os serviços como um todo funcionavam em nível 7,0% superior ao de fevereiro de 2020.

"Essa atividade ainda encontra rivalidade com supermercados. Na medida que ainda há um quantitativo de pessoas trabalhando em home office. Essas pessoas que estão trabalhando em home office pode ser que consumam ainda mais em supermercados que em restaurantes", considerou Lobo.

O pesquisador do IBGE lembra que a ligeira queda de 0,1% no volume de serviços prestados no País em janeiro ante dezembro sucede dois meses de crescimento, quando acumulou um avanço de 4,7%.

"Desde que começou seu processo de recuperação, o setor de serviços mostrou um predomínio amplamente de taxas positivas. De 15 informações, apenas cinco são negativas", disse Lobo. "O ritmo de crescimento dos últimos meses é menor do que o observado nos meses iniciais, e isso obviamente está atrelado à base de comparação", justificou.

Segundo ele, "há um certo cansaço" nesse processo de recuperação dos serviços de caráter presencial, enquanto que serviços prestados a empresas que desfrutaram de oportunidades proporcionadas pela pandemia ainda usufruem de um desempenho melhor.