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

Podcast

UOL Palmeiras

O podcast para os torcedores do verdão


OPINIÃO

UOL Palmeiras #31: Não haverá "terra arrasada" no Palmeiras

Do UOL, em São Paulo

28/09/2021 16h00

Nesta terça-feira (28), o Palmeiras coloca em campo diante do Atlético-MG bem mais do que qualquer tática. No gramado do Mineirão, também estará em jogo todo o planejamento do clube para a temporada. Uma eventual eliminação para o Galo na semifinal da Libertadores não deve trazer grandes consequências para o lado alviverde. O destino do Verdão começa a ser traçado às 21h30 (horário de Brasília), com acompanhamento minuto a minuto do Placar UOL.

No podcast UOL Palmeiras #31 (ouça na íntegra no episódio acima), o apresentador Vanderlei Lima, o colunista Danilo Lavieri e o repórter Diego Iwata Lima analisam os possíveis cenários no clube após esta partida decisiva, especialmente em caso de uma possível eliminação. Não existe a possibilidade de haver 'terra arrasada' no clube em caso de queda na Libertadores. Vale lembrar que o primeiro duelo terminou empatado sem gols no Allianz Parque.

"Não tenho essa visão apocalíptica no Palmeiras, que oscila como qualquer equipe. O pêndulo ficou muito tempo no alto no ano ado. Agora, o time está em um momento de crise técnica, incluindo o Abel. Ele está errando em substituições, escalações, escolhas de jogadores. Faz parte do desenvolvimento de uma equipe viver momentos complicados. Há uma instabilidade, mas não vejo terra arrasada, em que pese estar aquém do que já apresentou", comentou Iwata.

Se o time alviverde ficar pelo caminho na Libertadores, Lavieri acha que Abel não corre risco de ser demitido. "Caso e, são quase dois meses até a final. Tem um longo tempo para se preparar até lá e com o Brasileirão no meio disso. O Palmeiras, caso esteja garantindo na final, deve conseguir alguns jogos mais tranquilos e dar uma poupada. Aí é mais um planejamento a longo prazo, um problema menor. Na eliminação, a primeira coisa que vem na cabeça do treinador é se o Abel vai embora. Caso seja eliminado, acho que não haverá demissão, a não ser que o próprio técnico queira sair. Não vejo a diretoria do Palmeiras tomando a atitude de demitir", enfatizou o colunista.

Iwata também vê a situação de Abel estável mesmo em caso de eliminação para o Galo. "Essa diretoria tem zero intenção de demitir o Abel Ferreira. A Leila Pereira, que de fato será a próxima presidente, também já disse que quer contar com ele, que tem contrato até o fim de 2022. Ele só sai se realmente desejar sair, se ficar desgostoso com uma possível eliminação. Não vejo isso acontecendo e ele fica pelo menos até o fim do ano", avaliou o repórter.

Embora uma possível queda diante do Atlético-MG aumente a pressão no Verdão, Lavieri ainda vê o time com saldo positivo, já que continua vivo na disputa pelo título do Brasileirão. "A questão é mais anímica, de como o time vai reagir para garantir uma vaga na Libertadores. Tem gente que vai achar pouco. Seria excelente conquistar o título, mas sabemos que não é fácil ganhar todo ano e o Palmeiras tem vencido muita coisa nos últimos cinco anos. É uma questão de o torcedor estar um pouco mal acostumado", concluiu.

Ouça o podcast UOL Palmeiras e confira também a projeção sobre como o time deve se comportar no restante da disputa do Brasileirão.

Os podcasts do UOL estão disponíveis em uol.com.br/podcasts e em todas as plataformas" de distribuição de áudio. Você pode ouvir UOL Palmeiras, por exemplo, no Spotify, Apple Podcasts, Google Podcasts, Amazon Music e YouTube.