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

Ipea: coronavírus pode causar impacto na recuperação do emprego formal

Carteira de trabalho - Getty Images
Carteira de trabalho Imagem: Getty Images

Da Agência Brasil

12/03/2020 14h53

O mercado de trabalho formal deu sinais de recuperação no trimestre encerrado em janeiro deste ano, segundo análise do Instituto de Pesquisa Econômica Aplicada (Ipea), que alertou que as tendências analisadas devem ser modificadas pela pandemia de coronavírus. Os pesquisadores se basearam em dados do Instituto Brasileiro de Geografia e Estatística (IBGE) e afirmam que ainda é cedo para medir o tamanho do impacto que será sentido.

A técnica de Planejamento e Pesquisa do Ipea, Maria Andrea Parente, explica que a economia brasileira deve ser afetada pela desaceleração global e também pode enfrentar problemas com a disseminação do vírus no Brasil.

"Neste momento, a gente não sabe precisar, porque a gente não sabe ainda a intensidade nem a duração dessa crise", disse. "A gente vinha em um cenário de expectativas muito positivas para 2020 e, neste momento, essa melhora das expectativas está um pouco suspensa".

Um dos dados que aponta a recuperação que estava em curso é a retenção dos trabalhadores. Segundo o Ipea, 90,1% dos trabalhadores formais do último trimestre do ano ado já estavam na formalidade no trimestre anterior, resultado que é considerado o melhor desde 2012. A retenção melhorou para todas as faixas etária até 59 anos, e piorou para quem tem 60 anos ou mais.

O fluxo de trabalhadores que trocaram a informalidade pela formalidade também cresceu, chegando a 13,7%. O Ipea destaca que a formalização indica confiança, já que envolve mais custos de contratação e vínculo entre empregadores e empregados.

"A economia primeiro volta, depois volta o mercado de trabalho via colocação informal e conta própria. E o último o é o mercado formal. E a gente estava chegando nesse último o", explicou Andreia, que ponderou que os postos de trabalho formal também são mais resistentes a um cenário de instabilidade. "Pode até adiar decisões de contratação, mas, para aumentar o número de demissões, tem todo um custo envolvido".

Aplicativos

O estudo também conseguiu identificar o peso dos motoristas e entregadores de aplicativos nas vagas geradas por conta própria nos últimos cinco anos. Segundo o Ipea, o crescimento dos trabalhadores por conta própria no mercado de transportes terrestres cresceu em média 0,59% ao ano entre 2012 e 2014, e esse ritmo saltou para 9,67% ao ano entre 2015 e 2019.

Em números absolutos, isso provocou um crescimento de 1,253 milhão de trabalhadores em janeiro de 2015 para 1,988 milhão em abril de 2019. Foram cerca de 700 mil postos de trabalho em quatro anos, o que contribuiu para que o país chegasse a 24,5 milhões de trabalhadores por conta própria.

Para o diretor de Estudos e Políticas Macroeconômicas do Ipea, José Ronaldo de Castro Souza Júnior, uma possível disseminação do coronavírus no país pode impulsionar mais trabalhadores ao transporte de ageiros e entrega por aplicativos.

"O setor tende a ter crescimento no cenário de crise que está se desenhando, porque as pessoas vão continuar a comer, mas vão evitar lugares públicos. Elas vão tentar evitar transporte de massa, e você minimiza isso por meio desse tipo de serviço. A tendência é que esse tipo de trabalho ganhe ainda mais destaque".