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

André Rocha

OPINIÃO

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

Rocha: Flamengo dá enorme prova de força. Abel tem muito a explicar

Michael cumprimenta Pedro, ao marcar o gol de empate do Flamengo diante do Palmeiras - Marcello Zambrana/AGIF
Michael cumprimenta Pedro, ao marcar o gol de empate do Flamengo diante do Palmeiras Imagem: Marcello Zambrana/AGIF

Colunista do UOL Esporte

12/09/2021 19h31

Quando Wesley abriu o placar para o Palmeiras no Allianz Parque, o jogo parecia ficar à feição para os donos da casa.

Mas além do gol do Flamengo no minuto seguinte, em cruzamento de Everton Ribeiro de direita e cabeçada precisa de Michael aproveitando falha de posicionamento de Marcos Rocha, o time de Abel Ferreira inexplicavelmente manteve o autor do gol aberto pela direita.

Sim, parecia claro que a organização ofensiva planejada pelo treinador português previa Wesley aberto pela direita para cima de Ramon, terceira opção dos rubro-negros na lateral esquerda, Marcos Rocha mais preso para marcar Michael e Piquerez atacando o corredor esquerdo. Dudu viria da esquerda para dentro se juntar a Raphael Veiga na articulação. Rony circularia para infiltrar às costas de Gustavo Henrique e Bruno Viana.

Mas o jogo oferece suas tendências de acordo com o contexto. Wesley ou como quis por Isla, vindo de sequência pesada com o Chile na data FIFA de três partidas e com deficiências defensivas bem conhecidas. Foi circunstancial o movimento do jovem atacante por ali, mas por que não insistir? O "atalho" era nítido. Abel, porém, preferiu manter o planejado.

15 dias de trabalho, elenco praticamente completo - inclusive Gustavo Gómez, que voltou mais cedo por estar suspenso na seleção paraguaia. Só Weverton e Piquerez retornaram no final de semana. Houve tempo para trabalhar coletivamente, inclusive com jogo-treino entre titulares e reservas para manter o foco, sem perder mobilização com tanto tempo só treinando.

E sobravam motivos para entrar com intensidade máxima. Confronto direto com candidato ao título, sem Copa do Brasil no horizonte e um incômodo jejum de oito partidas sem vitórias sobre os bicampeões brasileiros. E desta vez havia Dudu como jogador desequilibrante.

Vantagem que ficou ainda maior quando De Arrascaeta foi substituído ainda no primeiro tempo. Assim como Gabigol, mais um convocado de fora por dores musculares. Sem Bruno Henrique, o Fla se via desfalcado do seu trio que decide jogos. No total, nove ausências. Seis titulares.

Mas havia Michael, destaque absoluto do clássico nacional com dois gols. O segundo, terceiro da virada por 3 a 1, ando por Marcos Rocha como bem entendeu. Drible óbvio, da esquerda para dentro. O lateral simplesmente desistiu. E o ponteiro que já vinha evoluindo com Rogério Ceni ganhou a confiança que faltava sob o comando de Renato Gaúcho.

Havia também Vitinho, que entrou na vaga do meia uruguaio e, embora tenha contribuído pouco com marcação e articulação, novamente fez a diferença na assistência em bola parada. Cobrança de escanteio pela direita na cabeça de Pedro, que subiu mais que Luan e acabou com a "zica olímpica", indo às redes novamente contra o Palmeiras.

Não foi uma atuação fantástica do Flamengo. Nem poderia ser, com tantos desfalques. O teste com Andreas Pereira como meio-campista central ao lado de Willian Arão mostrou que, com a bola, o belga é muito técnico, acrescentando inversões e toques plásticos. Falta, porém, a intensidade no combate que a função exige dentro do sistema de marcação individual por setor que Renato Gaúcho vem implementando.

Mas justamente por conquistar vitórias contundentes sem jogar no limite do desempenho é que o Fla impressiona. A vitória foi uma inquestionável demonstração de força. Para impressionar David Luiz, que assistiu ao jogo no estádio. E afirmar o time como o grande concorrente do Galo em todas as frentes.

Porque Abel Ferreira terá muito a explicar. Contava com tudo a favor e novamente seu time entregou muito pouco. Mesmo com mais posse de bola (58%), 90% a 82% na efetividade dos es, 12 finalizações a 11, cinco a quatro no alvo.

Os títulos da temporada ada e a vaga na semifinal da Libertadores sustentam o trabalho, mas há motivos de sobra para criticar o rendimento coletivo e as escolhas do português. Mesmo sem contratar como Fla e Galo, é obrigação produzir bem mais. Outra vez falhou miseravelmente.

(Estatísticas: SofaScore)