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

OPINIÃO

Lavieri: "Até mesmo os méritos de Luxemburgo, o Abel conseguiu melhorar"

Do UOL, em São Paulo

03/12/2020 04h00

O Palmeiras confirmou sua classificação para as quartas de final da Libertadores ao golear o Delfín, do Equador, por 5 a 0 no Allianz Parque, depois de ter vencido também na casa do time adversário, em Manta, por 3 a 1, e agora terá pela frente o Libertad, do Paraguai, podendo contar com mais peças do time que teve um período cheio de desfalques pela covid-19.

No Fim de Papo, live pós-rodada do UOL Esporte — com os jornalistas Isabella Ayami, José Trajano e Marília Ruiz —, Danilo Lavieri elogia alguns aspectos do time do Palmeiras, como o fato de fazer o dever contra um time mais fraco, o que em alguns momentos da recente agem de Vanderlei Luxemburgo pelo clube, não era visto pelos torcedores.

"Em relação ao nível do Delfín, é horrível, o time é muito ruim, era o pior provavelmente classificado para o mata-mata da Libertadores, mas o principal ponto de referência que a gente tinha até então era de um Palmeiras que tropeçava contra times mais fracos, como Ceará, como Coritiba, o próprio Goiás no primeiro turno, e hoje a gente vê um Palmeiras fazendo isso o que se espera quando um time mais forte pega um time mais fraco, que é fazendo o primeiro, buscando o segundo, buscando o terceiro", diz Lavieri.

O jornalista afirma que o técnico português Abel Ferreira merece elogios pelo que tem conseguido fazer no Palmeiras e ressalta que até mesmo no aproveitamento de jogadores promovidos das categorias base houve evolução em relação ao trabalho anterior, com as opções que subiram com Luxemburgo tendo um melhor desempenho no time atual.

"Acho que o Palmeiras merece os elogios por essa evolução, especialmente também pelos garotos da base, até mesmo os méritos do Luxemburgo, um dos méritos é o uso da base, o Abel Ferreira conseguiu melhorar, então os garotos estão subindo de produção, pegou o que estava bom do Luxemburgo, que era pouca coisa, e conseguiu melhorar e aproveitou essa injeção de confiança que o Cebola tinha conseguido colocar e pegou um time muito mais confiante, e isso a gente sabe que é fundamental no futebol", afirma Lavieri.

"É bom destacar que o Palmeiras tem o mérito, mas até então ganhava um monte de coisa, não aproveitava ninguém, vendia todo mundo e esse ano praticamente sem poder investir por diversos investimentos errados em 2019, juntando com os problemas da pandemia, falta de receita e tudo mais, teve que recorrer à base e aí pode colher os frutos de um trabalho iniciado lá atrás, porque não adianta de um ano para outro você investir na base e esperar que vai colher 10, 15 jogadores, é um trabalho que começou lá em 2013, 2014, quando o Paulo Nobre assumiu", conclui.