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

Julio Gomes

OPINIÃO

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

Dupla Benzema-Vini Jr é mais decisiva no ano do que trio estrelado do PSG

Benzema e Vini Júnior comemoram gol do Real Madrid sobre o Barcelona - Reprodução/Twitter
Benzema e Vini Júnior comemoram gol do Real Madrid sobre o Barcelona Imagem: Reprodução/Twitter

15/02/2022 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Paris Saint-Germain e Real Madrid abrem nesta terça as oitavas de final da Liga dos Campeões da Europa. O jogo de ida será em Paris, às 17h (horário de Brasília) - a outra partida do dia será em Lisboa, entre Sporting e Manchester City. O duelo vai opor o trio estrelado do time francês, o "trio dos sonhos" com Messi, Neymar e Mbappé, e a dupla de ataque que, efetivamente, é a melhor da temporada: Benzema e Vinícius Jr.

As dúvidas são justamente as presenças de Benzema, de um lado, e Neymar, de outro. Ambos vêm de lesões e possivelmente joguem, pois são fundamentais. Mas não estarão no melhor da forma e chegam sem ritmo de jogo.

Benzema é mais do que um simples centroavante, é um jogador fundamental para preparar jogadas, atrair a atenção de rivais e abrir o campo que Vinícius precisa. É seguro colocar o francês como melhor jogador da temporada 22/23, ao lado de Salah, do Liverpool.

Benzema tem 24 gols e 9 assistências em 28 partidas na temporada - cinco dos gols foram marcados na Champions, em cinco jogos. Ele perdeu os últimos três jogos do Real, atuou pela última vez em 23 de janeiro. Sem o atacante, o Real fez um gol em três jogos e foi eliminado da Copa do Rei.

Já Vini Jr soma 15 gols e 10 assistências em 32 partidas na temporada, mas não marca há um mês e caiu de produção bruscamente sem a presença de Benzema.

Com a dupla, o Real Madrid controla o Campeonato Espanhol e se classificou sem problemas na Champions League. É um time que, ancorado em boa defesa e o histórico trio de meio-de-campo, parece ser capaz de derrotar qualquer um. Vinícius e Benzema aram a se entender de uma maneira impressionante, os movimentos são complementares e naturais. Mas, quando um deles não está, é problema.

Um problema oposto ao do PSG, que montou o trio dos sonhos, mas joga com mais equilíbrio quando um deles não está. Neymar deve começar a partida no banco, o que parece ser mais solução do que problema para o técnico Pochettino. Não por ser Neymar. Eu estaria falando o mesmo se faltassem Messi ou Mbappé.

O fato é que nenhum time consegue, no futebol de alto nível da atualidade, jogar com três caras a menos. Me refiro a tarefas táticas, pressão, fechamento de espaços. É claro que, com a bola, qualquer um deles pode resolver qualquer partida de futebol. Mas o PSG teve 54% de posse de bola (de média) na fase de grupos - o Real Madrid, por exemplo, teve 57%.

Se você fica com a bola durante meio jogo, é neste meio jogo que Messi, Neymar e Mbappé precisam resolver as coisas. E o outro meio jogo, como fica? A temporada do Paris começa hoje, mas durante os últimos meses algumas partidas foram disputadas, evidentemente. E ficou claro como o time sofre defensivamente com os três em campo.

Uma solução é tirar um deles. Como Neymar volta de lesão, Pochettino tem um bom álibi para não causar comoção mundial ao deixar um no banco. A outra solução seria ter alto nível de sacrifício coletivo por parte das estrelas. Boa sorte, Pochettino!

Mbappé me parece ser a grande chave para o Paris. O rapaz deve ir para o Real Madrid no meio do ano, o segredo mais mal guardado da história do futebol. Apesar de já ter deixao pública a insatisfação por não ter sido negociado já no início da temporada, ele vem correspondendo - fez 21 gols e deu 16 assistências em 31 jogos na temporada. Neymar marcou 3 e deu 3 es para gol, Messi fez 7 gols e deu 8 assistências.

O talento individual do Paris pode fazer a diferença em qualquer fase, e Mbappé parece ser o jogador com mais poder de decidir partidas no momento. Algum dos outros, porém, irá correr por ele?