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

Rodrigo Coutinho

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Coutinho: Técnica se impõe de novo, mas semifinal deixa lições ao Flamengo

Colunista do UOL

29/09/2021 23h22

A vitória por 2x0 sobre o Barcelona, em Guayaquil, levou o Flamengo para a sua terceira final de Libertadores da história. Bruno Henrique repetiu o ''filme'' do 1º jogo entre as equipes e novamente marcou os dois gols do duelo. Filipe Luís, Everton Ribeiro, Rodrigo Caio, Gustavo Henrique, Diego Alves, Willian Arão e Andreas Pereira foram outros destaques, mas Renato terá pouco menos de dois meses para fazer a equipe inspirar mais confiança na parte coletiva até a final contra o Palmeiras. Os números são ótimos, mas o desempenho pode ser muito melhor.

Fabian Bustos surpreendeu ao sacar o melhor articulador de sua equipe, o meia argentino Damián Diaz. Escalou Garcés e Mastriani, uma dupla de ataque com presença na área. Carcelén entrou no meio em substituição ao suspenso Molina. No Flamengo, Portaluppi escalou o time que considera ideal neste momento. Teve os retornos de Filipe Luís e Arrascaeta entre os titulares.

01 - Rodrigo Coutinho - Rodrigo Coutinho
Disposição tática inicial das equipes
Imagem: Rodrigo Coutinho

O 1º tempo já terminou com vitória do Flamengo, mas se o Barcelona fosse um time um pouco melhor tecnicamente a história seria diferente. O rubro-negro até conseguiu em alguns momentos reter a bola, tirar a velocidade do jogo e se impor com a sua qualidade. Mesmo com a mobilidade reduzida e nitidamente não querendo se expor, conseguiu marcar o gol desta forma. Everton Ribeiro lançou Bruno Henrique após bela troca de es e a tentativa frustrada de subida de marcação do time da casa aos 16 minutos. O camisa 27 driblou Burrai e marcou.

A questão é que isso não aconteceu com tanta frequência. Muito menos agressivo que de costume, o rubro-negro não fazia tanta questão de ficar com a bola. O Barcelona sim. Buscou reverter o resultado e, mesmo errando bastante com um jogo menos elaborado, levou constante perigo a Diego Alves. O goleiro do clube carioca fez duas ótimas defesas antes do intervalo e evitou que a situação ficasse um pouco menos tranquila.

Marcando novamente por encaixes e perseguições dentro do setor, quando cada atleta segue o adversário que entra em sua zona, mas não se afasta tanto da região, faltou mais intensidade na execução dessa proposta. A realidade é que a maioria dos atletas rubro-negros não possui essa característica. Precisam da bola e marcar por zona. O resultado foi muito espaço dentro dos setores, principalmente o meio-campo. Ali o Barcelona ganhou vários duelos e levou perigo na sequência.

Arão e Andreas tentavam se desdobrar, mas o sistema adotado os distanciava com certa frequência, dificultando a missão. Everton Ribeiro e Bruno Henrique retornavam pelos lados com dedicação, mas deixavam clarões no setor inverso à jogada quando a bola estava no lado contrário e era invertida. O Barcelona buscava a área bem ocupada pela dupla de centroavantes, mas pecava nas finalizações.

02 - Staff Images / CONMEBOL - Staff Images / CONMEBOL
Bruno Henrique comemora seu 2º gol pelo Flamengo em Guayaquil
Imagem: Staff Images / CONMEBOL

Até mesmo nas ocasiões de contra-ataque o Flamengo não era tão contundente. Conseguiu levar perigo em transições logo depois de marcar o gol, quase sempre com Bruno Henrique, mas não manteve a postura. Andreas Pereira chegou a acertar a trave aos 20'. A parte mental do time, porém, esteve em dia. A equipe mostrou-se tranquila o tempo inteiro, e nem a saída de David Luiz lesionado, logo aos nove minutos, afetou o comportamento rubro-negro.

Na 2ª etapa o time carioca resolveu a sua vida muito rapidamente. Novamente venceu uma ''pressão alta'' do Barcelona trocando es e Everton Ribeiro recebeu de Gabigol em profundidade. De novo foi o garçom do decisivo Bruno Henrique aos dois minutos. O rápido atacante chegou a nove gols e cinco assistências em 14 jogos decisivos de Libertadores pelo Flamengo. Impressionante como não sente nem um pouco jogos assim.

Não há problema em resolver partidas se baseando na individualidade de seus jogadores. Eles pertencem ao Flamengo, são pagos em dia e estão no clube para isso. Mas o futebol cada vez menos permite o sucesso de equipes com essa característica. Diante de adversários mais bem organizados e com a mínima condição de fazerem frente na parte técnica, a situação pode ser muito diferente. O Barcelona, apesar da coragem e organização, não teve essa possibilidade.