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

Rodolfo Rodrigues

Sem títulos desde 2012, São Paulo perde 31º campeonato seguido

Fernando Diniz lamenta gol sofrido pelo São Paulo contra o Mirassol, nas quartas de final do Paulistão - Reprodução/Premiere FC
Fernando Diniz lamenta gol sofrido pelo São Paulo contra o Mirassol, nas quartas de final do Paulistão Imagem: Reprodução/Premiere FC

29/07/2020 20h55

Não deu para São Paulo mais uma vez no Paulistão. Com a derrota por 3 x 2 para o Mirassol nesta quarta-feira (29), o time do técnico Fernando Diniz foi eliminado nas quartas de final e aumentou o seu jejum de títulos e fracassos recentes. No Paulistão, onde ganhou o último campeonato em 2005, o tricolor amarga agora 15 anos sem conquistas — seu maior jejum. E desde o título da Copa Sul-Americana de 2012, o tricolor perdeu agora seu 31º campeonato consecutivo — o 24º em torneio de mata-matas.

Campeonatos disputados e perdidos pelo São Paulo desde seu último título, em 2012 (Copa Sul-Americana):

2013
Campeonato Paulista / Semifinal (Corinthians)
Copa Libertadores / Oitavas (Atlético-MG)
Recopa Sul-Americana / Final (Corinthians)
Copa Suruga / Final (Kashima Antlers-JAP)
Copa Sul-Americana / Semifinal (Ponte Preta)
Brasileirão (9º)

2014
Campeonato Paulista / Quartas (Penapolense)
Copa do Brasil / 3ª Fase (Bragantino)
Copa Sul-Americana / Semifinal (Atlético Nacional-COL)
Brasileirão (2º)

2015
Campeonato Paulista / Semifinal (Santos)
Copa Libertadores / Oitavas (Cruzeiro)
Copa do Brasil / Semifinal (Santos)
Brasileirão (4º)

2016
Campeonato Paulista / Quartas (Osasco Audax)
Copa do Brasil / Oitavas (Juventude)
Copa Libertadores / Semifinal (Atlético Nacional-COL)
Brasileirão (10º)

2017
Copa Sul-Americana / 1º Fase (Defensa y Justicia-ARG)
Campeonato Paulista / Semifinal (Corinthians)
Copa do Brasil / 4ª Fase (Cruzeiro)
Brasileirão (13º)

2018
Campeonato Paulista / Semifinal (Corinthians)
Copa Sul-Americana / 2ª Fase (Colón-ARG)
Copa do Brasil / 4ª Fase (Athletico-PR)
Brasileirão (5º)

2019
Campeonato Paulista / Final (Corinthians)
Copa Libertadores / 2ª Fase Preliminar (Talleres-ARG)
Copa do Brasil / Oitavas (Bahia)
Brasileirão (6º)

2020
Campeonato Paulista / Quartas (Mirassol)

Eliminações no Paulistão

Campeão Paulista pela última vez em 2005, com o técnico Emerson Leão, o São Paulo vem sofrendo nos mata-matas da competição. Em 2006, no último ano em que o torneio foi disputado no sistema de pontos corridos, o time ficou com o vice-campeonato. De 2007 para cá, em 14 edições, o time caiu dez vezes em semifinais, três em quartas de final e foi à final apenas uma vez (2019), quando foi derrotado pelo Corinthians.

Desempenho do São Paulo no Paulistão desde seu último título, em 2005:

2006
2º (Pontos Corridos)

2007
Semifinal (São Caetano)

2008
Semifinal (Palmeiras)

2009
Semifinal (Corinthians)

2010
Semifinal (Santos)

2011
Semifinal (Santos)

2012
Semifinal (Santos)

2013
Semifinal (Corinthians)

2014
Quartas (Penapolense)

2015
Semifinal (Santos)

2016
Quartas (Osasco Audax)

2017
Semifinal (Corinthians)

2018
Semifinal (Corinthians)

2019
Final (Corinthians)

2020
Quartas (Mirassol)