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

Danilo Lavieri

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.

Palmeiras dá bronca em Luiz Adriano e questiona queda de rendimento

Luiz Adriano não conseguiu uma boa sequência em 2021 no Palmeiras - Cesar Greco/Ag. Palmeiras/Divulgação
Luiz Adriano não conseguiu uma boa sequência em 2021 no Palmeiras Imagem: Cesar Greco/Ag. Palmeiras/Divulgação

Colunista do UOL

17/09/2021 12h47

Receba os novos posts desta coluna no seu e-mail

Email inválido

*Com Diego Iwata, do UOL, em São Paulo

Luiz Adriano foi chamado pela diretoria do Palmeiras para dar explicações sobre a sua fase que é classificada internamente como bastante abaixo das expectativas. A avaliação é que, além dos problemas físicos, o jogador relaxou além do normal após a temporada ada que terminou com três títulos.

Na ótica da diretoria, ele tem demonstrado mais disposição nos treinamentos recentes e a tendência é que ele volte a receber mais chances nas próximas partidas daqui para frente.

Oficialmente, o Alviverde justificava a ausência dele por um edema no joelho. Ele não foi nem relacionado entre as rodadas 9 e 14 do Brasileirão e não é titular desde o dia 27 de junho, quando começou jogando contra o Bahia e foi substituído aos 12 do 2º tempo. A última vez que ele jogou os 90 minutos foi também no mês de junho, na eliminação diante do CRB, pela Copa do Brasil.

Na temporada 2021, ele fez só 23 partidas, sendo 13 como titular e marcou três gols. O Palmeiras já disputou 50 jogos no ano e tem 83 gols feitos.

O blog ouviu relato de pessoas que moram no mesmo condomínio fechado de Luiz Adriano que ele viveu, após as conquistas no primeiro semestre, uma fase com bastante festa, com direito até a banda de pagode na sua casa e presença de convidados. Ele também foi visto em um bar na zona leste de São Paulo.

Até mesmo sua ex-mulher, a modelo russa Ekaterina Dorozhko, chegou a publicar nas suas redes sociais que o jogador "precisava largar o pagode".

A assessoria de imprensa do jogador negou que ele promova festas ou que frequente esse tipo de evento no momento e disse que ele mora com sua namorada atualmente. Acrescentou ainda que ele está 100% à disposição de Abel Ferreira.

O técnico, aliás, detectou a necessidade da contratação de um camisa 9 desde a temporada ada, mas não foi atendido pela diretoria por conta das dificuldades financeiras. O único reforço foi o retorno de Deyverson, que estava emprestado, o que só reforça a importância de Luiz Adriano para o time.

Siga também as opiniões de Danilo Lavieri no Twitter e no Instagram