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

Brasil volta a abrir vagas de trabalho em março, após três meses de cortes

Do UOL, em São Paulo

23/04/2015 14h08Atualizada em 23/04/2015 15h10

O Brasil abriu 19.282 vagas de trabalho com carteira assinada em março, depois de três meses seguidos em que mais postos foram fechados do que criados. O último resultado positivo tinha sido em novembro, com 8.381 novas vagas.

Os dados são do Caged (Cadastro Geral de Empregados e Desempregados) e foram divulgados pelo Ministério do Trabalho nesta quinta-feira (23).

O resultado foi melhor do que o do mesmo mês de 2014, quando 13.117 vagas foram abertas, e surpreendeu as expectativas do mercado. Antes da divulgação, pesquisa feita pela Reuters com analistas mostrou que a mediana das expectativas apontava fechamento de 25 mil empregos no mês, sendo que não havia projeção de abertura de vagas.

Em fevereiro, o Brasil tinha registrado o fechamento de 2.415 vagas com carteira assinada. O resultado foi o pior para o mês desde 1999, quando foram cortadas 78.030 vagas. Por outro lado, mostrou forte desaceleração no fechamento de vagas em comparação com janeiro, quando 81.774 postos fecharam.

Saldo em 2015 é negativo

Mesmo com o resultado positivo em março, no acumulado de 2015 o saldo ainda é negativo, com fechamento de 50.354 empregos na série ajustada (que conta informações declaradas pelas empresas fora do prazo). 

O saldo também é negativo na soma dos resultados dos 12 meses anteriores a março. Nesse total, foram eliminadas 48.678 vagas.

Maior número de vagas criadas é em serviços

O setor de serviços impulsionou o saldo positivo total de vagas registrado em março, com 53.778 novos postos. istração pública (3.012), comércio (2.684) e serviços industriais de utilidade pública (652) também abriram postos.

A construção civil foi a que mais fechou postos: 18.205 no total. A indústria de transformação (-14.683), agropecuária (-6.281) e extrativa mineral (-1.675) também tiveram resultados negativos.

São Paulo teve maior número de vagas abertas

Por região, 11 Estados tiveram saldo positivo de empregos, com destaque para São Paulo, com 12.907 vagas. Em comparação com o mês anterior, porém, o resultado paulista foi estável, com variação positiva de 0,1, a oitava maior entre as 27 Unidades da Federação.

Goiás foi o que teve maior variação positiva, de 0,5% em relação ao número de empregos formais registrados no mês anterior.

Pernambuco teve o pior resultado absoluto, fechando 11.862 postos. A Paraíba foi o Estado com maior variação negativa, de 1,35%.

Desemprego aumentou em fevereiro

Em fevereiro o desemprego registrado no Brasil foi de 5,9%, aumento de 0,6 ponto percentual na comparação com janeiro (5,3%) e de 0,8 ponto percentual em relação ao mesmo período do ano ado (5,1%), segundo dados da  PME (Pesquisa Mensal de Emprego), divulgados pelo IBGE no final do mês ado.

Em outra pesquisa do instituto, a Pnad Contínua (Pesquisa Nacional por Amostra de Domicílios Contínua) Mensal, o desemprego registrado no trimestre encerrado em fevereiro foi de 7,4%.

O IBGE ainda não informou os dados de emprego referentes a março. A divulgação está prevista para a próxima terça-feira (28).

(Com Reuters)