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

Chelsea domina e bate a Udinese em último compromisso da pré-temporada

Jogadores do Chelsea comemoram gol sobre a Udinese em amistoso - Darren Walsh/Chelsea FC via Getty Images
Jogadores do Chelsea comemoram gol sobre a Udinese em amistoso Imagem: Darren Walsh/Chelsea FC via Getty Images

Do UOL, em São Paulo

29/07/2022 17h54

O Chelsea venceu a Udinese por 3 a 1, hoje, em amistoso realizado no Estádio Friuli, em Udinese, na Itália. O placar foi construído com gols de Kanté, Sterling e Mason Mount, para os ingleses. Deulofeu diminuiu para os italianos.

Esse foi o quarto confronto dos Blues nesta pré-temporada. A equipe comandada pelo técnico Thomas Tuchel vinha de uma vitória e sofreu duas derrotas nos duelos anteriores. Um dos reveses, inclusive, foi uma goleada para o rival Arsenal por 4 a 0 na final da Flórida Cup.

A Udinese, por sua vez, havia disputado quatro amistosos desde o final da temporada ada. Nestes jogos, a equipe de Andrea Sottil somou duas vitórias, um empate e uma derrota.

O próximo compromisso do Chelsea será contra o Everton, na sua estreia na Premier League, no sábado dia 6 de agosto às 13h30 (de Brasília). Já a equipe italiana volta a campo no próximo dia 5, pela Copa da Itália, às 13h (de Brasília), mas seu adversário ainda será definido.

Início londrino

Os minutos iniciais da partida foram de domínio do Chelsea, com boa vantagem na posse de bola de nas chances criadas. A primeira oportunidade do confronto saiu dos pés de Sterling. O inglês recebeu ótimo e de Mount na grande área, ficou cara a cara com Silvestri, mas finalizou em cima do goleiro.

Após certa insistência, os Blues conseguiram abrir o placar. Kanté avançou com muita liberdade e arriscou chute cruzado da entrada da área, a bola chegou a tocar na trave antes de balançar as redes.

Toma lá, dá cá

Muito superior no confronto, a equipe de Tuchel abriu 2 a 0 sem muita dificuldade. Após bela enfiada de bola de Jorginho, Sterling ficou cara a cara com o goleiro, mas chutou em cima de SIlvestri. Com uma pitada de sorte, a bola rebateu na sua perna e entrou no gol.

Apesar de não ter criado tanto na primeira etapa, a Udinese conseguiu diminuir a vantagem inglesa. Pereyra arrancou em velocidade, se aproximou da área e chutou cruzado. Mendy espalmou, mas Deulofeu pegou o rebote para mandar na bochecha da rede.

Equilíbrio

A segunda etapa o confronto começou com um equilíbrio maior entre as equipes. O Chelsea seguiu criando boas oportunidades, mas a Udinese voltou para o campo querendo buscar o empate.

O jogo deixou de ter um domínio inglês e ou a ser mais disputado.

Vitória sacramentada

No final da partida, o Chelsea construiu mais uma boa oportunidade e ampliou sua vantagem no placar. Hudson-Odoi foi lançado na direita, tirou do zagueiro e cruzo rasteiro. Livre na pequena área, Mount finalizou no alto para estufar as redes.