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

A dois meses da Copa, Gabriel Jesus fortalece hábitos de centroavante

Colunista do UOL

20/09/2022 10h09

O Brasil estreia no Mundial do Qatar no dia 24 de novembro, e uma das principais dúvidas do time é quem será o homem de referência no ataque. É certa a presença de Gabriel Jesus entre os 26 nomes que tentarão o hexa. Muito criticado na última Copa do Mundo, ele vem crescendo bastante em aspectos que podem o fortalecer nessa briga.

A começar pelo nível de enfrentamento que tem. Pedro, centroavante do Flamengo, é pedido como titular. Possui mais características de homem de área em relação a Gabriel, mas não enfrenta alguns dos principais defensores do Mundo semanalmente.

Essa frequência num patamar mais qualificado é determinante em uma competição como a Copa. Jesus faz isso há seis temporadas seguidas. Disputou as principais competições no período. Seja pelo City ou pelo Arsenal, sempre apresentou bom nível na liga mais difícil do planeta.

Mais confiante nos Gunners, tem feito um papel fundamental no bom início de temporada dos londrinos. É o camisa 9 do time, a referência. Nem sempre preso na área. Tem liberdade de flutuação para os lados, de circulação nas costas dos volantes, mas não tem deixado de mostrar presença nos últimos metros do campo. Um desenvolvimento rumo ao oportunismo que deixou de ter em momentos importantes da carreira.

02 - Buda Mendes/Getty - Buda Mendes/Getty
Gabriel Jesus e Neymar em ação pela seleção brasileira
Imagem: Buda Mendes/Getty

Fez quatro gols e deu três assistências em oito jogos disputados até o momento. Com sete participações diretas em tentos do Arsenal, conseguiu igualar o meteórico início que teve no Manchester City, assim que foi contratado, em 2017. As boas notícias não param por aí.

É o sétimo melhor finalizador da Premier League até aqui, 52% de acerto, mesmo número de Harry Kane, por exemplo. É o segundo jogador que mais encosta na bola dentro da área adversária, sete vezes por jogo. Só está abaixo da máquina de fazer gols Haaland, do Manchester City. É também o quarto atleta mais caçado da competição. Sofre quase três faltas por partida.

O fato de não ter sido convocado para os amistosos contra Gana e Tunísia, nesta semana, serve como uma confirmação de que Tite já voltou a acreditar plenamente no rendimento que o ex-atacante do Palmeiras pode ter na Copa. Não precisa testá-lo e nem recuperar confiança dele com a Amarelinha.

Parece nítido que Pedro e Matheus Cunha brigam por uma vaga no grupo e, talvez, na cabeça do treinador, a vaga seja destinada a um reserva neste momento. Gabriel Jesus é o provável titular. E se continuar fazendo o que tem mostrado na Premier League, tem muitas chances de se redimir do futebol abaixo da média mostrado na Copa da Rússia.