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

País cria 48.436 vagas formais em junho, melhor saldo para o mês em 6 anos

Afonso Ferreira

Do UOL, em São Paulo

25/07/2019 10h09Atualizada em 25/07/2019 10h30

O Brasil abriu 48.436 vagas de emprego com carteira assinada em junho. É o melhor saldo para o mês em seis anos, desde 2013, quando foram criadas 123.836 vagas formais.

O resultado é o saldo, ou seja, a diferença entre contratações e demissões. Em junho, foram 1.248.106 contratações e 1.199.670 desligamentos. Em maio, o país havia aberto 32.140 vagas com carteira. Em junho do ano ado, foram fechadas 661 vagas formais.

No acumulado do primeiro semestre do ano, o país registrou a criação de 408.500 vagas com carteira. Em 12 meses até junho, o saldo é positivo em 524.931 postos de trabalho.

Os dados são do Caged (Cadastro Geral de Empregados e Desempregados) e foram divulgados hoje pelo Ministério da Economia.

Serviços puxam contratações; indústria demite

Entre os setores analisados, seis criaram vagas e dois fecharam. O setor de serviços foi o que mais abriu postos de trabalho, enquanto a indústria registrou o maior número de cortes.

Veja os resultados por setor:

  • Serviços: 23.020
  • Agropecuária: 22.702
  • Construção civil: 13.136
  • Serviços industriais de utilidade pública: 2.525
  • Extração mineral: 565
  • istração pública: 483
  • Comércio: -3.007
  • Indústria: -10.988

Salário médio tem leve alta

O salário médio de issão em junho foi de R$ 1.606,62, enquanto a média na demissão foi de R$ 1.766,67. Quando descontada a inflação medida pelo INPC (Índice Nacional de Preços ao Consumidor), houve aumento de 1,42% no salário de contratação e alta de 1,4% no salário de desligamento, em comparação com o mês anterior.

Em relação a junho do ano ado, houve crescimento de 1,57% no salário médio de issão e de 1,49% no salário de demissão.

Trabalho sem horário fixo

Pela modalidade de trabalho intermitente, que prevê o trabalho sem horário fixo e com o empregado recebendo apenas pelas horas trabalhadas, foram registradas 15.520 contratações e 5.343 demissões em junho, um saldo positivo de 10.177 empregos.

As aberturas de vagas desse tipo se concentraram principalmente no setor de serviços (7.501), comércio (1.159) e construção civil (908). O trabalho intermitente foi instituído pela reforma trabalhista, em vigor desde 11 de novembro de 2017.

IBGE faz pesquisa diferente

Os dados do Caged consideram apenas os empregos com carteira assinada. Existem outros números sobre desemprego apresentados pelo IBGE (Instituto Brasileiro de Geografia e Estatística), que são mais amplos, pois levam em conta todos os trabalhadores, com e sem carteira.

A última Pnad (Pesquisa Nacional por Amostra de Domicílios) Contínua registrou que o Brasil tinha, em média, 13 milhões de desempregados no trimestre encerrado em maio.

(Com Reuters)

O que é o FGTS, como funciona e quem pode sacar?

UOL Notícias