;(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

Setor de serviços do Brasil inicia o ano com perdas inesperadas em janeiro

29.mar.2021 - Movimentação na rua 25 de Março, em São Paulo - Por Camila Moreira e Rodrigo Viga Gaier
29.mar.2021 - Movimentação na rua 25 de Março, em São Paulo Imagem: Por Camila Moreira e Rodrigo Viga Gaier

Camila Moreira

Da Reuters

16/03/2022 09h03

Por Camila Moreira e Rodrigo Viga Gaier

SÃO PAULO/RIO DE JANEIRO (Reuters) - O setor de serviços brasileiro iniciou 2022 com queda inesperada no volume em janeiro, após dois meses de fortes altas, mas permanece acima do patamar pré-pandemia.

O volume do setor teve em janeiro recuo de 0,1% na comparação com dezembro, segundo os dados divulgados nesta quarta-feira pelo Instituto Brasileiro de Geografia e Estatística (IBGE).

O resultado fica abaixo do ganho de 0,2% esperado em pesquisa da Reuters, depois de avanços de 1,7% em dezembro e 2,9% em novembro.

Já em relação ao mesmo mês do ano anterior, o volume apresentou alta de 9,5%, ante expectativa de 9,3%.

O resultado de janeiro deixou o setor 7,0% acima do patamar pré-pandemia, de fevereiro de 2020, mas ainda 5,2% abaixo do pico da série, registrado em novembro de 2014.

O avanço da vacinação contra a Covid-19 no país permitiu a retomada dos serviços com contato social, os mais afetados pela pandemia, embora a disseminação da variante Ômicron no início deste ano tenha apresentado desafios.

O setor enfrenta ainda um cenário de redução da renda dos trabalhadores, em meio à inflação elevada no país, e de acordo com o gerente da pesquisa, Rodrigo Lobo, ainda não é possível saber se a perda vista em janeiro seria um ponto de inflexão ou apenas uma tomada de fôlego.

"Não sabemos o que vai ocorrer daqui para frente, mas o que dá para dizer é que o ritmo do setor de serviços está cada vez menor", avaliou Lobo, citando uma acomodação do setor. "Não dá para chamar janeiro de mês de inflexão dos serviços."

"A Ômicron não parece ter sido a causa para essa queda. Talvez um nível de preços mais alto, menor renda e desemprego muito elevado", completou.

Três das cinco atividades pesquisadas apresentaram retração no volume em janeiro, com destaque para a queda de 4,7% dos serviços de informação e comunicação, segundo mês consecutivo de perdas.

Nessa atividade, o segmento de tecnologia da informação caiu 8,9%, contribuindo "decisivamente" para o resultado do setor de serviços no primeiro mês do ano, de acordo com Lobo.

Também apresentaram quedas os serviços prestados às famílias (-1,4%), interrompendo nove meses seguidos de ganhos; e outros serviços (-1,1%).

"Mesmo com a queda de 1,4% em janeiro (dos serviços prestados às famílias), o saldo ainda é largamente positivo desde que se iniciou o processo de recuperação, em junho de 2020", disse Lobo. Entretanto, a atividade, a mais afetada pela pandemia, ainda está 13,2% abaixo de fevereiro de 2020.

Os resultados positivos em janeiro foram registrados por transportes (1,4%) e serviços profissionais, istrativos e complementares (0,6%).

O índice de atividades turísticas, por sua vez, cresceu 1,1% em relação a dezembro, oitava taxa positiva nos últimos nove meses, acumulando ganho de 69,6%. Ainda assim, o segmento permanece 9,7% abaixo do patamar pré-pandemia.