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

Flamengo

Primeira final única se divide entre festa global e problemas logísticos

VEJA OS MELHORES MOMENTOS DA FINAL

Gols da Libertadores

Léo Burlá e Rodrigo Mattos

Do UOL, em Lima

25/11/2019 04h00

Quem disser que a final única da Libertadores foi um sucesso absoluto estará ignorando a troca de sede e os problemas logísticos. Mas é inegável que a decisão em apenas um jogo proporcionou um espetáculo de bola mais agradável e ajudou a iniciar um processo de globalização do torneio. Houve uma atenção nunca antes vista para um confronto final da competição sul-americana.

Quando a Conmebol decidiu mudar seu principal torneio de clubes, atendeu quase que integralmente as sugestões de uma consultoria que trabalhou para a UEFA na remodelagem da Champions League. Foram duas alterações principais: dar mais vagas para times brasileiros, maior mercado da região, e transformar o jogo final em único, sem ida e volta.

A reação da maioria dos torcedores sul-americanos foi quase unânime: rejeição absoluta. A maior parte da mídia também se mostrou contrária ao fim de tradição de os times poderem receber as decisões em seu estádio.

Um gostinho de final única já foi testado na Libertadores-2018 por conta dos problemas de violência entre Boca Juniors e River Plate. O resultado da partida disputada em Madrid já teve muito mais a ver com quem jogou o melhor futebol do que com quem impõe a força do mandante. O teste definitivo, no entanto, só viria em 2019.

E o que se viu é que River Plate e Flamengo disputaram uma partida de bom nível técnico e tático, sem violência, com festas de ambas as torcidas. Não houve o clima de guerra. E obviamente a virada espetacular rubro-negra nos últimos minutos acrescentou ao roteiro traçado no Monumental Universitario.

Ao final, a partida teve jornalistas de 28 países, foi transmitida para 170 países, teve de volta um técnico europeu no banco do vencedor, ou na rede inglesa BBC, teve texto produzido sobre a decisão no "New York Times" e outros jornais de fora do continente (também já tinha ocorrido no ano ado). Enfim, o jogo se globalizou em proporção que não ocorra anteriormente. Com uma partida a ser jogada no Maracanã, em 2020, esse efeito tende a ser ainda maior.

Anitta foi a atração principal da cerimônia de abertura da decisão - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram

Escolhida como sede de última hora, Lima recebeu em torno de 30 mil turistas brasileiros e argentinos, e viveu um clima de Copa do Mundo em suas ruas durante o jogo. Os jornais locais, que no início da semana falavam mais do campeonato peruano, aos poucos foram dando a dimensão da partida como histórica.

Esse efeito positivo para a imagem da competição não apaga os problemas de estruturas enfrentados pela decisão em jogo único. Com os protestos políticos no Chile, Lima surgiu como uma sede de emergência. Isso gerou enormes problemas para torcedores chegarem à capital peruana pela deficiente malha aérea do continente. Na cidade, houve caos no trânsito para a chegada ao Monumental que só é atendido por uma via e não tem metrô.

A organização do jogo, em si, teve acertos e erros. Os isolamentos de segurança funcionaram, assim como a entrada do público e o estádio esteve funcional, embora antigo. Internamente, o estádio contou com uma estrutura compatível com grandes eventos em relação à internet. Houve problemas, no entanto, na troca de ingressos com torcedores que enfrentaram filas longas.

Como saldo final, é preciso ressaltar que as reclamações constantes contra a final única praticamente sumiram durante a após o jogo. Ou seja, a Conmebol convenceu boa parte da opinião pública do acerto da mudança da disputa

Flamengo