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

Caio Ribeiro comemora em vídeo ter se curado do câncer: 'Acabou'

Caio Ribeiro revelou tratamento contra o câncer em setembro - Reprodução/Instagram
Caio Ribeiro revelou tratamento contra o câncer em setembro Imagem: Reprodução/Instagram

Colaboração para o UOL, em Maceió (AL)

03/10/2021 19h45

O comentarista Caio Ribeiro, da Rede Globo, comemorou em suas redes sociais na noite deste sábado (3) ter se curado do câncer revelado por ele em setembro. O ex-jogador sofria de linfoma de Hodgkin, um tipo de câncer com origem no sistema linfático.

Caio ou pela última quimioterapia no dia 21 de setembro e estava apenas aguardando o resultado dos exames para descobrir se o câncer havia desaparecido de seu corpo.

"Eu não via a hora de gravar esse vídeo para dizer que acabou. Sexta-feira fiz o exame, fiz o Pet-scan para saber como estava a resposta ao medicamento e a quimioterapia e não existe mais nenhum linfoma no meu corpo, zerado, não existe nenhum risco do câncer continuar", disse o comentarista em um vídeo publicado nas suas redes.

Caio informou ainda que, apesar de estar curado, vai continuar fazendo radioterapia como forma de prevenção. "Agora tem uma radioterapia por prevenção, mas cheio de saúde a vida segue a já já estou de volta ao estúdio".

"Nunca imaginei receber tanto carinho como recebi de vocês desde que anunciei o tratamento. Acho que foi sim o maior jogo da minha vida e a gente venceu. Juntos! Em meu nome e de toda a minha família, o meu muito obrigado", completou.

Diagnóstico foi uma "pancada no estômago"

O ex-jogador, que revelou a doença no início de setembro, disse em depoimento ontem à revista Veja que o diagnóstico foi "pancada no estômago" e que jamais imaginou ar por esse tipo de problema.

"Jamais imaginei que isso poderia acontecer. Sempre fiz muita atividade física. Então, é uma pancada na boca do estômago, principalmente porque a falta de conhecimento traz insegurança", disse.

O comentarista contou ainda que, em um primeiro momento, optou por não tornar o diagnóstico público. Foi só após as quedas de cabelo devido à quimioterapia que ele decidiu expor a situação.

"Eu tinha muita preocupação com os meus filhos. Perguntei ao médico se alguém perceberia se eu não contasse. Não gosto de dar notícias ruins, sou de ar mensagens positivas. Além da minha família, só os meus sócios sabiam, porque estavam ao meu lado quando recebi a informação", relembrou.