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

Blog do Juca Kfouri

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

O Palmeiras está ficando monótono

Lance de escanteio no jogo Palmeiras x Ferroviária - TOMZÉ FONSECA/FUTURA PRESS/ESTADÃO CONTEÚDO
Lance de escanteio no jogo Palmeiras x Ferroviária Imagem: TOMZÉ FONSECA/FUTURA PRESS/ESTADÃO CONTEÚDO

26/02/2023 20h25

Receba os novos posts desta coluna no seu e-mail

Email inválido

Você começa a ver um jogo do Palmeiras e não tem dúvida sobre quem será o vencedor.

A única dúvida é sobre o placar final e, ultimamente, essa bobagem de saber se Endrick fará gol.

Hoje, contra a Ferroviária foi assim na casa verde.

Domínio absoluto, uma chance aqui, outra ali, mais uma acolá e, enfim, aos 41 minutos, e de Veiga na cabeça de Menino e pronto! 1 a 0.

Liderança reassumida na classificação geral para não dar mole ao São Bernardo e o segundo tempo todo pela frente para responder sobre qual seria o placar final e se Endrick poria fim ao jejum.

Fosse compreensivo, Abel Ferreira o deixaria em campo até o fim.

Não fosse, o tiraria mesmo que não tivesse feito gol e o abraçaria como gesto que faltou no último jogo.

Mas já imaginou como seriam felizes todos os torcedores do Brasil se o problema deles fosse ter um jogador de 16 anos que ainda não fez gol em 12 jogos, com nove vitórias e três empates?

Bem, enquanto não sai o gol do menino, Veiga fez mais um, do meio da rua, aos 15, diante de quase 29 mil torcedores — porque a capacidade da casa verde estava limitada por causa de show que haverá nesta semana.

E a dúvida sobre Endrick acabou porque Giovani entrou no lugar dele, com abraço moderado do treinador.

Único invicto no Paulistinha, melhor saldo de gols, melhor defesa com apenas quatro gols sofridos em 11 jogos, segundo melhor ataque, com 18 tentos, três a menos que o São Bernardo.

Será campeão?

Ninguém sabe.

Mas se você fosse obrigado a apostar tudo que tem num só time, em quem apostaria?

Pois é. Já está ficando monótono.

Azar dos outros.

Em tempo: aos 46, a Ferroviária descontou, com Matheus Lucas, porque a tranquilidade era tanta que o Palmeiras desconcentrou-se: 2 a 1.