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

David Letterman quase morre engasgado com sanduíche: 'Vergonhoso'

O apresentador David Letterman - Grace Hollars/Indianapolis Star
O apresentador David Letterman Imagem: Grace Hollars/Indianapolis Star

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

29/03/2022 14h08Atualizada em 29/03/2022 14h08

O apresentador da TV americana David Letterman fez uma participação no programa de Ellen DeGeneres e contou algumas de suas experiências de quase morte. Uma delas, no entanto, ganhou destaque. Letterman disse que seu filho Harry o advertiu quanto a contar a história: "É vergonhoso", disse ele. Mas o apresentador contou mesmo assim.

David contou que, numa manhã, após sair para fazer uma corrida, ele tomou um banho e foi comer algo. "Estava sozinho em casa com meus cachorros. Tomei banho, coloquei minha cueca e fui à cozinha - sim, eu estava perto de comida", começou o apresentador, se desculpando com a plateia pelos detalhes 'perturbadores'. "Fiz um sanduíche gigante com manteiga de amendoim. Eu subi as escadas e fui comendo o sanduíche. E então eu percebi: eu não conseguia respirar", disse David, arrancando risadas da plateia.

Ele disse que tentou fazer a manobra de Heimlich em si mesmo ao perceber que estava engasgando. "Dizem que tem 96% de eficácia. 'Não tenho com o que me preocupar', pensei. Estava no banheiro com meus cachorros. Tentei a manobra, 96% de eficácia. Não funcionou", contou David. O apresentador ainda comentou: "Esse seria o obituário mais vergonhoso da história: 'Personalidade ultraada da TV foi encontrado morto em seu banheiro de cueca com um sanduíche de manteiga de amendoim preso em sua garganta'", disse ele rindo.

Por fim, Letterman contou como conseguiu sobreviver à situação. "Comecei a correr e me joguei na quina de uma escrivaninha. E bateu justamente no lugar certo. E o pedaço de sanduíche saiu voando, graças a Deus. Aí fiquei aliviado, estava vivo, fiz planos de férias e tudo", contou o apresentador.