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

Podcast

UOL Flamengo

O podcast para a nação rubro-negra


ANÁLISE

UOL Flamengo #24: Goleada para o Inter não abala clima no Fla

Do UOL, em São Paulo

10/08/2021 16h00

A goleada por 4 a 0 para o Internacional no Maracanã, no último domingo (8), encerrou a série de sete vitórias do Flamengo sob o comando de Renato Gaúcho. O placar surpreendeu, já que o rubro-negro vinha de boas atuações e havia empolgado o torcedor - alguns até compararam o time ao da época de Jorge Jesus.

No podcast UOL Flamengo #24 (ouça na íntegra no episódio acima), o apresentador Pedro Lopes, o colunista Rodrigo Mattos e o repórter Igor Siqueira analisaram o impacto deste resultado no time e como a derrota evidenciou um problema defensivo: o buraco entre a zaga e o meio-campo.

Para Mattos, a goleada não deve afetar o lado psicológico do elenco rubro-negro. "Há um certo espaço entre a zaga e os volantes. Os zagueiros estão jogando bem desprotegidos. Vimos isso nos quatro gols do Inter, que foi muito inteligente em sua estratégia. A zaga não sobe como quando jogava com Jesus para pressionar onde a bola é perdida. Não acredito muito nisso de ânimo. Em um time como o do Flamengo que está jogando há três anos, com jogadores experientes, é difícil uma goleada abalar psicologicamente. No máximo, vai ter uma chamada de atenção do Renato", comentou.

Para Siqueira, o Fla ainda não se adaptou da melhor forma à ausência de Rodrigo Caio. "Enxergo essa derrota como um grande acidente de percurso. Sobre o problema defensivo, a ausência do Rodrigo Caio é uma questão importante. Ele não vai resolver o buraco do meio-campo. O Rodrigo Caio é o zagueiro mais veloz do time. Quando você joga com Leo Pereira e Gustavo Henrique, tecnicamente é preciso diminuir essa distância para o seu próprio gol para não tomar muita bola nas costas. Esse equilíbrio ainda não foi encontrado devidamente", analisou.

O repórter observou que, além do desempenho ruim do time da Gávea, o Colorado também teve muitos méritos para construir a goleada. "Foi uma atuação pontual, muito abaixo da média para o que o Flamengo está acostumado a fazer. Esses lapsos coletivos vão se somando e, claro, houve a competência do Internacional e de um Yuri Alberto que estava em dia inspiradíssimo e soube dar os golpes muito precisos. Vamos ver como o Flamengo vai responder a isso", afirmou.

Mattos acha que a goleada para o Inter não deve ser encarada como uma tragédia completa. "Dizer que as sete vitórias do Renato foram só fruto de um grande trabalho tático seria mentira, assim como dizer que começou a surgir um monte de erros agora também seria uma análise equivocada. Nesse jogo específico, o Flamengo não atuou bem, entrou um pouco displicente e errando muito em tomadas de decisão na frente e atrás. Houve falhas que ocorriam em outros jogos e não vinham sendo exploradas direito pelos adversários", concluiu

Ouça o podcast UOL Flamengo e confira também a discussão sobre a recuperação de Rodrigo Caio, que sofre com os constantes problemas físicos.

Os podcasts do UOL estão disponíveis em uol.com.br/podcasts e em todas as plataformas de distribuição de áudio. Você pode ouvir UOL Flamengo, por exemplo, no Spotify, Apple Podcasts, Amazon Music e YouTube.