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

Palmeiras

Palmeiras volta a conquistar três títulos na temporada após mais de 25 anos

09/03/2021 10h00

Indiscutível no quesito títulos, a temporada de 2020 foi uma das mais vitoriosas da história do Palmeiras. Com a conquista da Copa do Brasil, o clube voltou a atingir a tríplice coroa, feito que não acontecia desde 1993 no clube.

Vindo de uma temporada sem conquistas e repleta de desconfiança sobre o elenco, a diretoria alviverde iniciou 2020 com a missão de retomar a identidade palestrina trazendo o já consagrado técnico Vanderlei Luxemburgo para comandar um time sem muitos investimentos e com a base como principal aposta.

Depois de nove meses de trabalho com título do Paulistão e advento da pandemia de Covid-19, que resultou em perdas consideráveis de caixa e arrecadamento pelos estádios vazios, Luxa não resistiu no cargo após sequência ruim de resultados e um futebol de pouca perspectiva de futuro para torcida e diretoria. De forma interina, Andrey Lopes comandou a equipe por cinco jogos antes da chegada do técnico Abel Ferreira, em Novembro.

Em pouco mais de quatro meses de trabalho, Abel Ferreira levou o time as conquistas da Copa Libertadores e da Copa do Brasil, no último domingo (07), diante do Grêmio. Os dois títulos alcançados pelo técnico português, que não tinha nenhum troféu no currículo como comandante profissional antes da chegada ao Palmeiras, levaram o clube a fechar a temporada de 2020 com a tríplice coroa. A última vez havia sido há 27 anos, em 1993, com o Paulistão, Campeonato Brasileiro e Rio-São Paulo.

O feito da temporada ada foi o quarto na história do clube. Assim como em 2020, o Palmeiras conquistou três taças oficiais em 1951, 1972 e 1993.

Em 51, ano do Mundial, o Palmeiras faturou, também, o torneio Rio-São Paulo e a Taça Cidade de São Paulo. A segunda, na era da Academia de Ademir da Guia, o Palmeiras levou o Campeonato Brasileiro, Paulistão e o Torneio Mar Del Plata.

A mais recente, em 93, começou com o título paulista que acabou com um jejum de mais 16 anos sem nenhuma conquista. Dia que ficou eternizado como dia da paixão palmeirense. Meses depois, ainda sob o comando de Luxemburgo, vieram o Campeonato Brasileiro e o Rio-São Paulo.

Palmeiras