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

Inglaterra ostenta em posição carente no mundo todo

 Alexander-Arnold comemora gol do Liverpool contra o Rangers pela Liga dos Campeões - Craig Williamson/SNS Group via Getty Images
Alexander-Arnold comemora gol do Liverpool contra o Rangers pela Liga dos Campeões Imagem: Craig Williamson/SNS Group via Getty Images

Colunista do UOL

17/11/2022 04h00

Mesmo com o vice-campeonato da última Euro e o bom papel feito na Copa de 2018, o English Team chega ao Mundial longe de poder ser apontado como um dos favoritos. Corre por fora! Precisa jogar mais do que fez recentemente para se postular ao caneco. Mas chama a atenção a qualidade dos laterais-direitos do elenco. É a posição com mais ausência de alto nível no futebol mundial.

Vamos procurar e não encontraremos unanimidades nas laterais das demais seleções. Vários são os motivos para explicar isso.

Logicamente quem é destro e tem muito talento será colocado em outra posição. O retorno recente dos pontas como jogadores bem fixos pelos lados do campo tirou deles o espaço de avanço e desenvolvimento ofensivo, exigiu novas valências que provavelmente não foram formados para apresentar. Pela esquerda, a questão ainda não é tão ampla.

O fato é que Gareth Southgate não pode reclamar do material humano do setor. E olha que ainda perdeu Reece James. O lateral do Chelsea provavelmente seria o titular da função, como ala, já que a equipe utiliza três zagueiros, e não jogará a Copa por uma lesão no joelho sofrida em outubro, em jogo contra o Milan, pela Champions League.

01 - Mike Ehrmann/Getty Images - Mike Ehrmann/Getty Images
Reece James e Gabriel Martinelli brigam pela bola em Arsenal x Chelsea, confronto da Florida Cup
Imagem: Mike Ehrmann/Getty Images

Misto de força, velocidade e qualidade nos cruzamentos, James tinha a concorrência de nada mais nada menos que Trent Alexander-Arnold, lateral que já se tornou um dos maiores da posição na história do Liverpool, mas incrivelmente não é titular absoluto, e correu até o risco de ficar de fora da relação.

Mesmo sendo muito diferenciado nos es, chutes de longa distância e cruzamentos, Arnold é mais frágil fisicamente em relação aos seus concorrentes. E defensivamente acaba não transmitindo tanta segurança. Kieran Trippier, do Newscastle, e o sólido Kyle Walker, do Manchester City, são outros postulantes à vaga e estão entre os 26 convocados.

Trippier a longe de ter a mesma qualidade de Arnold, mas oferece mais equilíbrio pelo flanco direito. Tanto que foi titular na Copa de 2018 e na Euro ada. Deve repetir a dose desta vez. Já Walker tem todas as chances de ser o zagueiro pela direita do trio utilizado por Southgate. Vez ou outra conduz a bola em velocidade pelo setor ou faz uma ultraagem, mas é titular porque marca melhor que os concorrentes.

A Inglaterra estreia no Mundial nesta segunda-feira, contra o Irã, a partir das 10h. Na 2ª rodada do Grupo B encara os Estados Unidos, às 16h do dia 25 de novembro. Já em 29 de novembro, também às 16h, enfrenta País de Gales.