;(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 fecha 82 mil vagas em janeiro, pior resultado para o mês desde 2009

Do UOL, em São Paulo

27/02/2015 10h55

O Brasil fechou 81.774 vagas formais de trabalho em janeiro, o pior resultado para o mês desde 2009, quando havia registrado fechamento de 101.748 postos. Os dados são do Caged (Cadastro Geral de Empregados e Desempregados), divulgados nesta sexta-feira (27) pelo Ministério do Trabalho.

No mês ado, foram 1.600.094 contratações e 1.681.868 desligamentos. Foi o segundo mês seguido com fechamento de vagas. Em dezembro, 555.508 vagas de emprego com carteira assinada tinham sido fechadas.

O resultado de janeiro ficou bem acima do que previam economistas consultados em pesquisa da Reuters, cuja mediana indicava fechamento de 20 mil vagas.

Comércio perde 98 mil postos

O comércio varejista fechou 97.887 postos de trabalho em janeiro, enquanto o comércio atacadista mostrou estabilidade, criando 87 vagas. A área de serviços registrou perda de 7.141 postos de trabalho. 

Por outro lado, a indústria de transformação voltou a contratar em janeiro após oito meses perdendo vagas, com 24.417 postos de trabalho criados. A agricultura teve geração de 9.428 vagas.

Rio de Janeiro é Estado com maior queda

O Rio de Janeiro foi o Estado com maior número de vagas fechadas, foram 40.658 no total, queda de 1,04%. Apenas quatro Estados tiveram aumento no número de empregos: Santa Catarina, Rio Grande do Sul, Paraná e Mato Grosso.

Entre as regiões, o Sudeste perdeu 69.911 vagas, queda de 0,32%, o Nordeste 32.011, 0,47% a menos, e o Norte fechou 10.748 postos, caindo 0,55%. O Sul, com 28.688 (0,4%), e o Centro-Oeste, com 1.208 (0,04%), tiveram aumento.  

Governo não tem meta de novas vagas

O ministro do Trabalho, Manoel Dias, afirmou no final do ano ado que o governo não tem meta de criação de empregos para 2015. Segundo ele, o Brasil vive o pleno emprego e não há necessidade de metas porque o país "não precisa criar mais 1 milhão ou 2 milhões de vagas".

Para 2014, o governo tinha definido a meta de 1 milhão de novas vagas, mas o país fechou o ano com a criação de 396.993, o mais baixo desde 2002.

Janeiro teve aumento no desemprego, segundo IBGE

Na última quinta-feira (26), o IBGE divulgou que o desemprego em janeiro atingiu 5,3%, maior patamar desde setembro de 2013.

Os dados fazem parte da PME (Pesquisa Mensal de Emprego), que leva em conta as regiões metropolitanas de Recife, Belo Horizonte, São Paulo, Salvador, Rio de Janeiro e Porto Alegre.

(Com Reuters)