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

O salto de Julián Álvarez, o melhor finalizador da Copa

Colunista do UOL

20/12/2022 04h00

Dificilmente uma equipe campeã começa e termina a Copa com os mesmos titulares. A Argentina não foi a primeira e nem será a última a inserir, entre os principais atletas de uma campanha vencedora, nomes que eram reservas antes do torneio. Julián Álvarez mudou totalmente o seu status no plantel de Lionel Scaloni e, além dos quatro gols marcados, deixou o Mundial como o melhor finalizador entre todos os atletas.

A cada três arremates do atacante do Manchester City, dois ganhavam a direção da meta adversária. Os 66% de aproveitamento o colocaram no topo, à frente de Neymar e Messi, que completam o ''pódio''. Nada mal que para quem já mostrou essa deficiência em alguns momentos. Na própria Copa do Mundo, no duelo contra a Polônia, perdeu duas ótimas chances antes de marcar um lindo gol no 2º tempo.

A liderança neste quesito é uma grande notícia para o seguimento da carreira do jovem atacante. Ele tem 22 anos e ganhou a posição de Lautaro Martinez na Argentina não só pelo melhor momento técnico que vive, mas também pela característica mais móvel em relação ao centroavante da Inter de Milão.

Álvarez traçou muitas diagonais no ataque argentino, conseguiu ocupar uma faixa mais extensa, oferendo novas possibilidades a Messi e aos demais companheiros, seja de uma jogada em profundidade ou em apoios de costas para o gol, mesmo não sendo exatamente a especialidade.

01 - Fonte: Wyscout - Fonte: Wyscout
Os números de Julián Álvarez na Copa do Mundo 2022
Imagem: Fonte: Wyscout

Se a dura concorrência na Albiceleste foi batida por Julián durante a Copa do Mundo, o mesmo não se pode dizer de seu clube. No Manchester City o duelo é contra ninguém menos do que Haaland. Certamente o principal centroavante surgido nos últimos anos na Europa. O norueguês mostra-se mais completo do que Álvarez neste momento, além de ser um jogador mais forte fisicamente para o jogo entre os zagueiros.

Como Pep Guardiola não costuma utilizar uma dupla de ataque e possui opções mais afeitas a jogar como ponta em relação a Julián, o atacante argentino terá que seguir sua batalha por mais minutos. O desempenho na Copa, porém, pode ter deixado uma pulga atrás da orelha do técnico espanhol. Obviamente ele já sabia do que o seu jogador era capaz, mas se provar em um Mundial costuma transformar carreiras.

Revelado pelo River Plate em 2018, Julián Álvarez já tem o título mais cobiçado da bola apenas quatro anos mais tarde. Joga em uma das melhores equipes do mundo e pode se desenvolver ainda mais para se fixar entre os principais atacantes da história do futebol argentino. Tem uma carreira extensa pela frente. E se as finalizações já foram pouco precisas, nada melhor do que a Copa para mostrar o contrário.