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

Alicia Klein

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Com bike de Rony e sem soberba, Palmeiras histórico faz 8 a 0 no agregado

Jogadores do Palmeiras comemoram gol do zagueiro Gustavo Gómez contra o Cerro Porteño, pelas oitavas da Libertadores - Cesar Greco
Jogadores do Palmeiras comemoram gol do zagueiro Gustavo Gómez contra o Cerro Porteño, pelas oitavas da Libertadores Imagem: Cesar Greco

06/07/2022 21h20

Receba os novos posts desta coluna no seu e-mail

Email inválido

Primeiro de tudo, saiu o gol de Ronybikeson! O quinto gol do Palmeiras na goleada de hoje, o 33º na Libertadores 2022 e o 18º de Rony pelo Alviverde na competição.

Depois dos 3 a 0 em Assunção, o Palmeiras atropelou o Cerro Porteño em 5 a 0.

Com a vitória fora de casa, e aproveitando para poupar jogadores diante de um calendário intenso, um Brasileirão mais apertado e uma decisão difícil pela Copa do Brasil, o Palmeiras entrou em campo com: Weverton, Mayke, Luan, Gómez e Piquerez; Danilo, Gabriel Menino e Raphael Veiga; Dudu, Navarro e Wesley.

O início do primeiro tempo foi de alguns espaços e poucas chances reais de gol, com arrancadas de Dudu e Wesley, e uma ou outra oportunidade com Aquino, pelo time paraguaio. Mas, mais uma vez, muita dificuldade no último e palmeirense.

Em 25 minutos de partida, as estatísticas apontavam apenas um chute no gol, somando ambas as equipes.

Uma primeira etapa quase tão morna quanto a do jogo de ida, em Assunção.

Então, aos 34 minutos, Rony entrou no lugar de Rafael Navarro, com uma lesão na coxa, e em menos de um minuto perdeu um gol incrível. Em ótima transição, Veiga tocou para Wesley na esquerda, que cruzou para Rony desperdiçar, dentro da pequena área.

Na sequência, aos 36, Gómez subiu para cabecear uma linda bola de Veiga, depois de mais uma jogada ensaiada de escanteio, mas foi Samudio quem tocou contra o próprio patrimônio: Palmeiras 1 a 0.

No intervalo, Abel trocou o amarelado Gabriel Menino por Zé Rafael. Aos 17 minutos, o Trem cruzou na cabeça de Raphael Veiga, que cabeceou no travessão. Logo depois, Jean salvou o Cerro em mais um bom contragolpe de Wesley.

Veiga, em ótima noite, e Dudu saíram aos 23 para as entradas de Atuesta e Breno Lopes.

Em um lance que saiu dos pés de Weverton, Rony recebeu cruzamento de Mayke e marcou seu 17o gol pelo Palmeiras na Libertadores. Menos de dois minutos depois, em jogada de Atuesta e Rony, Breno Lopes ampliou: 3 a 0.

Aos 33, sem Veiga e Scarpa para bater escanteio, Wesley assumiu a função e meteu na cabeça do zagueiro artilheiro. Gustavo Gómez, 4 a 0.

Aí chegou o momento que todos esperavam: o gol de bicicleta do artilheiro histórico do Palmeiras em Libertadores. Rony recebeu de Breno Lopes e fez história no Allianz Parque: 5 a 0.

Terminou assim: 8 a 0 no agregado, fora os bailes (de segundo tempo).

Depois das 32 finalizações para nenhum gol contra o Athletico, o Palmeiras voltou a mostrar que é letal na Libertadores Se as apostas nos atacantes Flaco López e Miguel Merentiel derem certo, o time deve chegar ainda mais perigoso às quartas de final, contra o Atlético-MG.

E é bom que chegue porque a janela de transferência do próximo dia 18 pode mudar a cara do futebol brasileiro.