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

São Paulo

Apesar de derrota, São Paulo é o brasileiro com mais títulos internacionais

Richard Schunke, do Independiente del Valle, e Rodrigo Nestor, do São Paulo, disputam lance durante a final da Copa Sul-Americana -  Marcelo Endelli/Getty Images
Richard Schunke, do Independiente del Valle, e Rodrigo Nestor, do São Paulo, disputam lance durante a final da Copa Sul-Americana Imagem: Marcelo Endelli/Getty Images

Thiago Braga

Do UOL, em Córdoba, na Argentina

01/10/2022 20h38

A derrota por 2 a 0 para o Independiente Del Valle, do Equador, na final da Copa Sul-Americana, manteve o jejum de títulos internacionais do São Paulo. Apesar disso, o clube do Morumbi ainda é o time brasileiro com mais conquistas internacionais, com 12 taças em sua galeria.

Só para se ter uma ideia, a segunda equipe da lista é o Santos, que tem 8 títulos internacionais. Depois vem Cruzeiro e Internacional, com 7 troféus. Até por isso, o São Paulo mantém a hegemonia de grandes conquistas entre os brasileiros, mesmo tendo sido campeão pela última vez em 2012, na Copa Sul-Americana.

Entre as 12 conquistas estão três edições do Mundial de Clubes (1992, 1993 e 2005), três Libertadores (1992, 1993 e 2005), uma Supercopa da Libertadores (1993), Copa Sul-Americana (2012), Copa Conmebol (1994), Copa Master Conmebol (1996) e Recopa Sul-Americana (1993 e 1994).

O vice-campeonato da Copa Sul-Americana frustra o planejamento do São Paulo, que optou por priorizar as copas em vez do Campeonato Brasileiro, por causa das premiações e das chances de levantar uma taça nesta temporada. Mas o Del Valle colocou tudo a perder e mostrou que o time ainda tem um longo caminho para se reerguer no cenário internacional.

Esse revés ocorre em uma temporada na qual o São Paulo amargou uma derrota acachapante para o Palmeiras no Paulista, foi eliminado da Copa do Brasil com duas derrotas para o Flamengo, e não conseguiu se recuperar na temporada a fim de ganhar um troféu na disputa em Córdoba. Agora, terá de buscar vaga na Libertadores do próximo ano pelo Campeonato Brasileiro, competição que está em posição intermediária na tabela.

São Paulo