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

OPINIÃO

São Paulo deve manter Fernando Diniz? Até quando? Blogueiros opinam

Fernando Diniz comanda o São Paulo em jogo contra o Internacional pelo Brasileirão - Marcello Zambrana/AGIF
Fernando Diniz comanda o São Paulo em jogo contra o Internacional pelo Brasileirão Imagem: Marcello Zambrana/AGIF

Do UOL, em Santos (SP)

21/01/2021 12h00

A goleada por 5 a 1 para o Internacional na noite de ontem (20), no Morumbi, pela 31ª rodada do Campeonato Brasileiro, não só tirou o São Paulo da liderança da tabela como também fez o técnico Fernando Diniz voltar a balançar no cargo.

E agora? O São Paulo deve manter Fernando Diniz no comando? Se sim, até quando? Fizemos essas perguntas aos colunistas do UOL Esporte. Veja o que eles disseram:

Se a avaliação interna for de que perdeu o vestiário de vez e não há mais chance de recuperação no campo, não há como sustentar.
ANDRÉ ROCHA

Até o fim da temporada, para uma avaliação consciente e objetiva do trabalho. Uma mudança agora só se justificaria por um problema interno, de gestão de grupo.
ANDREI KAMPFF

Se a nova diretoria entrou com o time na liderança por conta do trabalho do Diniz, não faz sentido demitir agora que perdeu a ponta. A não ser que haja uma explicação clara da mudança, como ele ter perdido o controle do grupo ou algum outro motivo bem importante. Tirar por tirar seria resultadista.
DANILO LAVIERI

Infelizmente, não deve mais. Se insistir corre o risco de ficar fora do G4.
JUCA KFOURI

Não dá para tirar o Diniz agora, a sete rodadas do fim do Brasileiro com o time disputando o título. O trabalho dele é uma montanha-russa em desempenho e péssimo em resultados. Como há uma nova diretoria no clube, ele certamente será avaliado, mas qualquer definição sobre troca tem que ocorrer depois do Brasileiro.
MARCEL RIZZO

Deve ser mantido até quando uma análise ampla e feita de cabeça fria decidir que ele não tem mais nada a oferecer quanto à possibilidade de ganhar títulos.
MENON

Como agora Inês é morta, deve manter pelo menos até o fim do Brasileirão. Mas, depois disso, a permanência dele deve ser muito bem pensada. Afinal, o Tricolor, apesar de ter flertado com o título brasileiro, pagou alguns dos maiores micos da sua história nesta temporada.
MILTON NEVES

Deve manter pelo menos até o final do Brasileirão. Só depois a diretoria deve analisar se ele merece ficar ou não. Para decidir, a cúpula tricolor precisa de uma fotografia perfeita do vestiário. Raí, mesmo de saída, e Muricy, precisam ser os fotógrafos.
PERRONE

Uma troca a esta altura do campeonato me parece extremamente complicada, até pela falta de substitutos confiáveis na praça. Mas se o São Paulo perder mesmo o título, depois de ter uma folga tão grande na liderança, a permanência de Diniz ficará muito complicada. A impressionante queda de rendimento nas últimas rodadas dá a impressão de que ele perdeu o comando do grupo. Nesse caso, a demissão se justificaria.
RENATO MAURÍCIO PRADO

A situação é muito delicada. Faltam apenas 7 jogos. O São Paulo pode retomar a liderança na próxima rodada, quando pega o Coritiba em casa. Acho que o prazo é esse.
RODOLFO RODRIGUES

São Paulo