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

Mais de 500 pessoas morreram em meio a onda de calor no Canadá e EUA

27.jun.2021 - Um homem se refresca em uma estação de nebulização durante o calor escaldante de uma onda de calor em Vancouver, na Colúmbia Britânica, no Canadá - REUTERS/Jennifer Gauthier
27.jun.2021 - Um homem se refresca em uma estação de nebulização durante o calor escaldante de uma onda de calor em Vancouver, na Colúmbia Britânica, no Canadá Imagem: REUTERS/Jennifer Gauthier

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

01/07/2021 19h34Atualizada em 01/07/2021 19h34

Pelo menos 561 pessoas morreram na última semana em meio a onda de calor no Canadá e em alguns pontos dos Estados Unidos. Os dados de mortes relacionadas às condições climáticas foram colhidos por autoridades dos dois países e, segundo elas, ainda pode se agravar.

Termômetros da Colúmbia Britânica, no Canadá, chegaram a marcar 47 °C. Um comunicado emitido por Lisa Lapointe, legista-chefe da província, informou que pelo menos 486 mortes súbitas foram registradas entre sexta-feira (25) e ontem.

"Embora seja muito cedo para dizer com certeza quantas dessas mortes estão relacionadas ao calor, acredita-se que o aumento significativo nas mortes relatadas seja atribuível ao clima extremo que a Colúmbia Britânica enfrentou", informou.

O departamento de legistas de Oregon, nos Estados Unidos, também começa a se preocupar com os efeitos do clima. Até agora, de acordo com relato da Dra. Jennifer Vines, oficial de saúde de um condado do estado chamado Multnomah, 45 pessoas morreram na região em situações ligadas às altas temperaturas.

O site local CNBC afirma que o estado, em sua totalidade, registrou 63 óbitos relacionados ao clima. Lá, os termômetros registraram 46 °C.

"Esta foi uma verdadeira crise de saúde que ressaltou o quão mortal uma onda de calor extremo pode ser, especialmente para pessoas vulneráveis", disse Vines.

"Eu sei que muitos residentes do condado cuidavam uns dos outros e estou profundamente triste com o número inicial de mortes", acrescentou. "À medida que nossos verões ficam cada vez mais quentes, suspeito que enfrentaremos esse tipo de evento novamente."

Os distritos de King Country e Seattle, localizados no estado norte-americano de Washington, informaram que 12 pessoas morreram por causa do calor, duas delas encontradas já sem vida em suas residências.

"Nosso desconforto recente é apenas a ponta do iceberg que está derretendo. O que sentimos esta semana é apenas o ato de abertura de um desastre global que se aproxima", disse o governador do estado, Jay Inslee, em uma coluna no jornal Seattle Times.