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

Gomes: Sacrificado no 'time de Messi', Neymar volta a jogar mal

Neymar em ação durante partida do PSG contra o Rennes pelo Campeonato Francês - REUTERS/Stephane Mahe
Neymar em ação durante partida do PSG contra o Rennes pelo Campeonato Francês Imagem: REUTERS/Stephane Mahe

03/10/2021 10h15

Receba os novos posts desta coluna no seu e-mail

Email inválido

O PSG do trio histórico formado por Messi-Neymar-Mbappé não vai ganhar todas. Sempre soubemos disso, ninguém é invencível no futebol. O que não se poderia imaginar é que tantas partidas seriam tão ruins com os três juntos em campo. É uma no cravo, outra na ferradura.

Neste domingo pela manhã, veio a primeira derrota do Paris com suas estrelas: 2 a 0 para o Rennes, um time da parte de cima da tabela do Campeonato Francês, mas que não assusta ninguém. Os gols do Rennes saíram no finalzinho do primeiro tempo e no comecinho do segundo. O Paris acabou a partida com 13 finalizações, mas nenhuma a gol - se houvesse um cone no lugar do goleiro Gomis, seria 2 a 0 do mesmo jeito, ele não fez defesa alguma.

A estatística é bastante esclarecedora sobre o que o Paris e o trio fizeram em campo. E hoje não era só o trio, tinha Di María também. As bombas sobravam todas para Gueye e Verratti lá atrás.

É a primeira derrota, mas não podemos nos esquecer que antes já haviam empatado com o Brugge, pela Champions League, e vencido nos acréscimos partidas contra Lyon e Metz. A vitória contra o Manchester City, no meio de semana, com os olhos do mundo sob este jogo, parece que disfarçou algo que claramente não estava legal.

A vitória contra o City foi muito enganosa, no meu ponto de vista. Um jogo completamente dominado pelo City, que teve suas chances para empatar e virar, mas não foi eficiente. O PSG aceitou o domínio do adversário e não mostrou armas táticas para combatê-lo. Em um contra ataque, Messi deu uma de Messi e matou a partida. Mas, com todo este material humano, não é pouco depender da sorte e do brilho individual de um ou outro?

Hoje, contra o Rennes, novamente Neymar foi o sacrificado em nome da liberdade de Messi. O brasileiro ficou preso pelo lado esquerdo do campo e voltou a jogar mal.

Eu sempre gostei de Neymar pela esquerda, com liberdade de vir para dentro e, lógico, pisando o máximo possível na área, pois ele é um magnífico finalizador. Mas, nos últimos quatro anos, no Paris ou na seleção, Neymar tem jogado como um 10, com liberdade total pelo campo. Pedir para que ele jogue de novo preso a uma faixa de campo não é algo trivial. E ele não só está preso pela esquerda, como está preso a uma área mais próxima à área central do campo, não no terço final.

Por enquanto, Neymar está fazendo direitinho o que o técnico manda, mas caiu absurdamente de produção. Messi já saiu de campo resmungando, Mbappé já saiu de campo soltando palavrões. Hoje foi o dia de Neymar ser substituído na reta final do jogo, e ele não fez careta e nem reclamou.

Não estou aqui dizendo que seja um erro crasso apostar em Messi como o principal jogador do time. Acho discutível, mas é aceitável. Só que não é possível matar Neymar em nome da liberdade de Messi. É importante encontrar mecanismo para que ambos participem do jogo e se encontrem. Talvez mais do que um 4-3-3, o Paris precise dos dois atuando como meio campistas. Não sei, o problema é de Pochettino, mas, até agora, não está legal.

Neymar sempre teve a carreira marcada pelos estrelismos e showzinhos, que fizeram parte da construção desta antipatia que muitos nutrem por ele, dentro ou fora do mundo do futebol. Por enquanto, neste primeiro mês de PSG "galáctico", Neymar vem dando exemplo, tanto no comprometimento em campo quanto nas atitudes. Mas não está jogando nada. Vamos ver até quando a situação vai durar.