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

Manchester United vence o Crystal Palace pelo Campeonato Inglês

[email protected] (Redação)

04/02/2023 14h10

O Manchester United venceu o Crystal Palace por 2 a 1, em confronto válido pela 22ª rodada da Premier League. Os gols da partida ocorrida em Old Trafford foram marcados por Bruno Fernandes e Marcus Hashford (United) e Schlupp (Crystal Palace).

Com o resultado, o Manchester United chegou aos 42 pontos e conquistou a 3ª colocação da Premier League, ultraando o Newcastle. Já o Crystal Palace completou o seu 5º jogo sem vitórias e se manteve na 12ª colocação do Inglês.

Na próxima quarta-feira, às 17h (de Brasília), o United enfrenta o Leeds, em Old Trafford, pela Premier League. Também pelo Campeonato Inglês, o Crystal Palace enfrenta, no sábado, às 12h, o Brighton, no Selhurst Park Stadium.

O Jogo

Logo aos 4 minutos da primeira etapa, a bola bateu na mão do zagueiro Hughes e o juiz assinalou pênalti. Na cobrança, Bruno Fernandes deslocou o goleiro e abriu o placar para o United.

O resto do primeiro tempo foi dominado pelo Manchester United, que pressionava o Crystal Palace com e sem a bola, mas não conseguia converter suas jogadas em gols, muito em função do goleiro Guaita, que teve grande atuação nos 45 minutos iniciais.

Aos 18 minutos do segundo tempo, em bela troca de es, Garnacho ou Luke Shaw que cruzou rasteiro para Rashford, na pequena área, apenas tocar para o gol e ampliar a vantagem do United.

Aos 20 minutos, Casemiro foi expulso após confusão gerada por entrada dura de Schlupp em Antony.

O Crystal Palace aproveitou a expulsão do brasileiro e se lançou ao ataque. Aos 30 minutos, Doucouré chutou de primeira, após cobrança de escanteio. Schlupp desviou o arremate e descontou para os visitantes.

O Manchester United se fechou e viu seu adversário criar mais chances de gol, para empatar a partida. O Crystal Palace, entretanto, abusou dos cruzamentos aéreos na grande área e teve suas iniciativas ofensivas neutralizadas pela defesa dos donos da casa.

Veja outros resultados da 22ª rodada da Premier League, neste sábado:

Everton 1 x 0 Arsenal

Aston Villa 2 x 4 Leicester

Brentford 3 x 0 Southampton

Brighton 1 x 0 Bournemouth

Wolverhampton 3 x 0 Liverpool