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

Manter Olimpíada é crueldade com atletas impedidos de treinar

Homem com máscara de proteção a pelo logo da Olimpíada de Tóquio - ISSEI KATO
Homem com máscara de proteção a pelo logo da Olimpíada de Tóquio Imagem: ISSEI KATO

17/03/2020 04h00

Há seis dias, adiar ou cancelar a Olimpíada de Tóquio era "inconcebível", segundo a ministra japonesa dos Jogos Olímpicos, Seiko Hashimoto. O tempo mostrou que ela estava errada. Adiar a maior competição poliesportiva do mundo é agora uma hipótese plausível, colocada na mesa de discussão pelo Comitê Olímpico Internacional (COI), que faz hoje teleconferência com as federações internacionais para discutir os próximos os.

A Olimpíada é um negócio que movimenta bilhões de dólares, que custou uma fortuna para o governo japonês, para Tóquio, para canais de televisão e patrocinadores. Por isso, qualquer decisão no sentido de adiar ou cancelar os Jogos não é fácil. Há sempre quem defenda que em primeiro vêm os interesses econômicos - vide as declarações do ministro brasileiro Paulo Guedes. Mas é preciso ouvir os protagonistas olímpicos: os atletas. E, para eles, não haveria crueldade maior do que fazê-los competir longe da forma física ideal, apenas para atender desejos comerciais e de calendário.

Pela parte dos japoneses, qualquer modificação no planejamento parece continuar ser "inconcebível" porque eles observam a partir do ponto de vista deles. O Japão está controlando relativamente bem o novo coronavírus, tendo tomado remédios amargos antes da Europa e da América, e é provável que em poucas semanas a vida volte à normalidade. Logo, o país, e especificamente sua capital, Tóquio, estariam aptos a receber visitantes de todo o mundo a partir de 24 de julho.

Acontece que está cada vez mais claro que não se trata da capacidade do Japão de receber a Olimpíada. O coronavírus não é o zika, uma preocupação mais forte na cidade-sede do que no restante do mundo. A pandemia coloca os Jogos em risco porque os atletas estão sem condições de atenderem os dois critérios mínimos para disputar uma Olimpíada: treinar e se classificar para ela.

A experiência brasileira emula o que acontece no resto do mundo. Por aqui, as principais estruturas físicas de treinamento estão sendo fechadas. Sem piscinas, pistas de atletismo, ginásios, tatames, os atletas não conseguem treinar. Na Espanha e na Itália, ciclistas, mesmo os profissionais, estão proibidos de pedalar na rua, para não sofrerem acidentes e precisarem ocupar leitos hospitalares.

Se ficar uma, duas ou três semanas sem treinar já faz uma enorme diferença na preparação física de quem dedica quatro horas por semana à academia, imagine na de quem irá à Olimpíada se nadar os 100 metros em 47s8 segundos, mas não irá se nadar em 47s9. Não é à toa que atletas de alto rendimento treinam tanto. Só assim eles obtêm resultados inconcebíveis para meros mortais.

À falta de preparação se soma o calendário curto. Para ficar no exemplo da natação, os melhores do país estão treinando direto no mínimo desde dezembro para a seletiva nacional, que seria em abril. Depois de voltarem a treinar, eles precisarão de algumas semanas para poderem disputar uma seletiva. E, depois disso, de mais algumas semanas para conseguirem competir de novo em alto nível, num processo chamado periodização.

Esse problema se repete em outros países e em outras modalidades. Se por um milagre o Covid-19 deixar de ser um problema mundial daqui a duas semanas, Tóquio até conseguiria selecionar e reunir os melhores do mundo a partir de 24 de julho. Mas boa parte deles não estaria na sua melhor forma física, o que é injusto e cruel com quem se dedicou não quatro anos, mas uma vida toda para esse momento.

E mesmo essa injustiça terá pesos diferentes de acordo com a nacionalidade do atleta. Chineses tendem a voltar a treinar antes e a se preparar melhor. O Brasil só agora está impondo medidas de isolamento social, o que significa que a crise por aqui ainda vai demorar um pouco mais a ar. Na África ela mal chegou. Tomara não chegue. Mas, e se chegar? E se em julho os atletas de países africanos estiverem proibidos de treinar, como estão hoje os brasileiros? Aí, sinto muito, eles que fiquem fora da Olimpíada?

Não pode ser. A Olimpíada só é o que é porque ela oferece, ou tenta oferecer, oportunidades iguais para atletas de todo o mundo competirem no mais alto nível e mostrarem quem é o melhor em determinada prova. É essa que precisa ser a prioridade. Todos os outros interesses devem se moldar a este. Ao esporte.