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

Olhar Olímpico

COI transforma Olimpíada em competição de quem supera o Covid-19 primeiro

Relógio com contagem regressiva para os Jogos de 2020 em Tóquio - EDGARD GARRIDO
Relógio com contagem regressiva para os Jogos de 2020 em Tóquio Imagem: EDGARD GARRIDO

18/03/2020 04h00

A brasileira Geisa Arcanjo foi um dos destaques de um torneio em Bragança Paulista (SP), onde sexta marca do mundo no arremesso de peso, enquanto em Pequim a chinesa Lijao Gong assumiu a liderança do ranking mundial indoor nesta mesma prova. As duas exibições foram no sábado (14), mas uma enormidade de tempo esportivo as separam. Enquanto a China já superou a fase mais aguda do coronavírus e começa a voltar à vida normal, com o retorno dos eventos esportivos, no Brasil a crise está só começando. Se por aqui tudo correr como na China, só daqui a sete semanas Geisa chegará ao momento de preparação que sua rival está hoje.

É por exemplos assim que a decisão do Comitê Olímpico Internacional (COI) de não adiar os Jogos Olímpicos torna o maior eventos esportivo do mundo uma competição entre quem lida melhor e mais rápido com o Covid-19, o novo coronavírus. Vai ganhar quem tiver tranquilidade para se preparar. E perder quem vive em países onde a pandemia fizer maior estrago.

Gong, prata na Olimpíada de Londres-2012, só fez no sábado sua estreia na temporada 2020. Tanto ela quanto Geisa tinham planos de, neste dia, estarem se enfrentando no Mundial Indoor, que seria em Nanjing e foi cancelado no final de janeiro, quando a China tomou medidas drásticas para combater o então desconhecido Covid-19. Foram suspensos incontáveis eventos esportivos, desde Mundiais até eventos regionais como esse, que acabou disputado no sábado, no ginásio de uma universidade, sem torcida.

Com a Olimpíada mantida para a data prevista, Gong terá 136 dias de preparação até a eliminatória do arremesso de peso no Estádio Olímpico de Tóquio. Enquanto isso, Geisa, que disputou no sábado o último torneio antes de uma interrupção do calendário nacional por tempo indeterminado, por enquanto poderá continuar a treinar no CNDA de Bragança Paulista, mas até quando? Outros centros importantes do atletismo brasileiro, como o NAR, o Ibirapuera e o CT Paraolímpico, em São Paulo, estão todos fechados.

A comparação entre Geisa e Gong vale para centenas de atletas brasileiros e chineses, e, em extensão, também para esportistas de outras nações. Os países que primeiro combatem o coronavírus, seja por melhores políticas públicas ou por terem sido impactados primeiro, têm seus atletas voltando antes a treinar e a competir. Enquanto isso, aqueles que tiverem que lidar mais tardiamente com os efeitos da pandemia terão muito menos tempo para se preparar. E se um país continuar com medidas de restrição até julho? Seus atletas serão proibidos de disputar os Jogos?

Esse modelo é injusto e cruel porque tira do atleta o poder sobre seu próprio desempenho. Não foram os boxeadores brasileiros que decidiram que vão ficar sem treinar pelas próximas semanas, por exemplo. A seleção permanente treina em um equipamento público municipal de São Paulo e a prefeitura determinou a suspensão de todas as atividades esportivas nesses clubes. Nem que a comissão técnica quisesse poderia dar treinos.

Isso vale para o atleta brasileiro, para o norte-americano, o italiano, espanhol, francês, iraniano. A situação sanitária e as diferentes posturas adotadas por governos nacionais e regionais para conter o coronavírus tiram dos atletas o direito de decidir sobre sua preparação. Muitos estão de quarentena, outros proibidos por lei de treinar - na Espanha e na Itália, terra de alguns dos melhores ciclistas do mundo, está proibido andar de bicicleta.

Nesse cenário, o atleta muda de lugar e vira espectador, torcendo de casa para que as coisas melhorem no seu país, no seu estado, na sua cidade, no destino que escolheu para fazer o próximo estágio de seu treinamento. Para que seu clube decida abrir as portas, para que o governo não o proíba de ao menos sair correr no parque, para que ninguém de sua casa seja infectado.

Isso joga no colo do acaso o desempenho esportivo. Não é para isso que atletas de ponta treinam durante toda a vida. Eles, todos eles, independente de serem habitantes de países mais ou menos preparados para um desafio desse porte, merecem disputar uma Olimpíada no ápice de suas formas físicas, concentrados, bem treinados. Qualquer coisa diferente disso é qualquer coisa que não esporte.