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

Esse conteúdo é antigo

Vecina: Vacina bivalente contra covid demorou muito para chegar ao Brasil

Colaboração para o UOL, em São Paulo

27/02/2023 10h20

Nesta segunda (27), começou mais uma etapa da vacinação contra a covid-19 no Brasil. Desta vez, será aplicado o imunizante bivalente da Pfizer, eficaz contra a cepa original do coronavírus e a variante ômicron. Em participação no UOL News, o médico Gonzalo Vecina criticou a demora para a chegada desta vacina bivalente ao país.

Ela demorou muito para chegar ao Brasil. Alguns técnicos estão fazendo críticas ao governo por ter demorado tanto para colocar a vacina no país. Concordo que estamos atrasados, mas a crítica que cabe não é ter ou não ter vacina, mas de como a temos. Gonzalo Vecina, médico sanitarista

Em um primeiro momento, serão vacinadas pessoas acima de 70 anos, indivíduos que moram em instituições de longa permanência, pacientes imunocomprometidos e membros de comunidades indígenas, ribeirinhas e quilombolas. Para Vecina, este primeiro grupo poderia ser maior.

Discutiria só se os profissionais de saúde não deveriam estar na primeira leva porque eles estão expostos. Precisamos equilibrar os fatores de risco e de vulnerabilidade. Historicamente, o governo brasileiro vem buscando mais o risco do que a vulnerabilidade. É uma decisão que tem que ser discutida com a sociedade. Gonzalo Vecina, médico sanitarista

Josias: Evidências de crime de Bolsonaro contra yanomamis são potencializadas

Ao analisar a reportagem exclusiva do UOL de que o governo de Jair Bolsonaro (PL) se negou a fechar o espaço aéreo e fiscalizar o garimpo, Josias de Souza ressaltou a omissão de militares. O colunista afirmou que membros das Forças Armadas se tornaram cúmplices do ex-presidente ao ignorar a ação criminosa de garimpeiros ilegais na reserva yanomami.

Mais do que potencializar as evidências de que Bolsonaro cometeu crimes, e em relação aos yanomamis os indícios são de genocídio, acumulam-se também evidências de que oficiais das Forças Armadas se tornaram cúmplices das delinquências de Bolsonaro. Foi assim em todos os assuntos. Josias de Souza, colunista do UOL

Calejon: Bolsonaro Store faz do ex-presidente um 'vendedor de bugigangas'

De presidente da República a 'vendedor de bugigangas'. Cesar Calejon reagiu de forma incrédula ao lançamento da Bolsonaro Store, uma loja virtual com produtos em homenagem ao ex-presidente. O jornalista considerou a iniciativa como um 'fracasso anunciado'.

É absolutamente equivocado querer se transformar em uma espécie de 'vendedor de bugigangas'. Alguém que se vendia como patriota usa um termo em inglês, Bolsonaro Store. É difícil pensar qual medida seria mais equivocada do que essa, tanto na forma, conteúdo, logotipo, nome, produto a ser comercializado e o timing. É um estudo de caso incrível de um fracasso absoluto em gestão de imagem.
Cesar Calejon, jornalista

O UOL News vai ao ar de segunda a sexta-feira em três edições: às 8h, às 12h e às 18h. O programa é sempre ao vivo.

Quando: de segunda a sexta, às 8h, às 12h e 18h.

Onde assistir: Ao vivo na home UOL, UOL no YouTube e Facebook do UOL.

Veja a íntegra do programa: