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

Danilo Lavieri

Tite precisa repensar Coutinho, mas pode comemorar Douglas Luiz e Lodi

Colunista do UOL

13/10/2020 23h08

Receba os novos posts desta coluna no seu e-mail

Email inválido

Depois de uma excelente atuação contra a Bolívia, a seleção brasileira de Tite sofreu bem mais hoje para enfrentar o Peru pela 2ª rodada das Eliminatórias da Copa do Mundo de 2022. E isso tem bastante ligação com a baixa produção de Philippe Coutinho nesta terça-feira.

O meio-campista foi bem na última partida, deu esperança ao torcedor com liberdade para circular pela intermediária ofensiva, mas apresentou nova queda de produção por ter de ficar mais presa pela direita, como mostram dados do Sofascore. Ele deu apenas 15 es certos nos 69 minutos que ficou em campo, só acertou um drible e não finalizou nenhuma vez a gol.

Depois que Everton Ribeiro e Everton Cebolinha entraram no time pela direita, a seleção conseguiu melhorar a produção. Claro que ajudaram no placar também a expulsão estúpida do zagueiro peruano após cotovelada em Richarlison e um pênalti duvidoso que garantiu a virada.

Tite e sua comissão técnica têm um apreço pela qualidade técnica de Philippe Coutinho e por boas apresentações em alguns momentos decisivos. O meio-campista acabou com a Argentina em pleno Mineirão nas Eliminatórias do último Mundial e conquistou a iração eterna na seleção atual. Foi ele também que marcou o gol primeiro gol do time na Copa do Mundo de 2018, contra a Suíça.

Mas o problema é que sua marca registrada, aquela puxada para o meio seguida por um chute colocado no ângulo adversário, está mais no imaginário da comissão do que na realidade recente. No atual modelo, ele ainda enfrenta dificuldades em ter que dominar a bola de costas para o gol.

Qualquer torcedor sabe que Coutinho tem todas as condições técnicas de ser titular da seleção, mas, como diz o ditado, "futebol é momento". E ele não está no seu melhor momento há algum tempo. Quem sabe o retorno ao Barcelona não faça o meio-campista subir de produção? Ou então usá-lo em determinados momentos específicos, como foi contra a Bolívia, em um sistema de ataque diferente do de hoje.

Por outro lado, Douglas Luiz e Renan Lodi voltaram a ter ótimas apresentações e mostraram que devem ser sempre lembrados por Tite daqui para frente em posições concorridas, especialmente o meio-campo, que tem nomes na fila como Bruno Guimarães, do Lyon, Arthur, da Juventus, e Gerson, do Flamengo.

Richarlison ainda mostrou que é polivalente, pode atuar pelos lados, pelo meio e tem técnica para ser armador e finalizador no ataque. Neymar, que ou a marca de gols de Ronaldo Fenômeno, flerta com momentos de perigo com reclamações exageradas e simulações, mas voltou a jogar bem, como já havia sido na primeira rodada.