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

Crespo evita falar sobre reforços e lamenta desatenção do SPFC em empate

Brunno Carvalho

Do UOL, em São Paulo

29/08/2021 19h07

O São Paulo pagou por uma desatenção no final da partida contra o Juventude, na avaliação do técnico Hernán Crespo. Depois de abrir o placar de pênalti com Reinaldo, a equipe paulista levou o empate nos minutos finais do duelo, mais uma vez em uma jogada de bola parada.

"Acredito que podíamos jogar de uma maneira melhor, que nos permita ter uma vantagem maior no placar. Isso não aconteceu e pagamos por uma desatenção. Acredito que podemos com esse tempo melhorar. Foram somente dois jogos [com atuações ruins], hoje e contra o Sport, acredito que antes fizemos bons jogos, mas acho que podemos jogar um futebol melhor", disse, durante entrevista coletiva.

O São Paulo agora terá uma longa pausa até o próximo jogo. Como o duelo contra o América-MG foi adiado e ainda não tem data para acontecer, o próximo compromisso do time paulista será contra o Fluminense, no dia 12 de setembro.

Antes da pausa, no entanto, o São Paulo trabalha para reforçar o elenco. A diretoria conversa com o meia Gabriel Neves, do Nacional (URU), e com o atacante Jonathan Calleri. Questionado sobre os possíveis novos jogadores, Crespo não quis comentar.

"Você me conhece, sabe que não falo nunca de mercado. Não quero falar de hipóteses, essa não vai ser exceção. Todas as oportunidades que a diretoria puder encontrar para melhorar o elenco, eu estarei feliz", disse.

Confira outras declarações de Hernán Crespo durante a coletiva:

Gol de bola parada

Os problemas vão acontecer sempre, porque é impossível controlar todas as oportunidades que tem o futebol, futebol é dinâmico. Sabemos que depois do jogo contra o Flamengo nunca mais tomamos um gol de bola parada. Jogando tantos jogos, vai acontecer jogos como os dois últimos, que não pudemos fechar o placar. Mas acredito que com Bahia e com o Grêmio e, uma pena pelo VAR com o Palmeiras no Brasileirão, poderíamos ter vencido no último minuto.

Temos muito para trabalhar, muito espaço para trabalhar. Não só bola parada, mas ter um pouco mais a bola. Temos muitas situações para melhorar, sabemos o elenco que temos, as características que temos e tentamos fazer o melhor possível.

Rigoni e Luciano

Talvez não foi a primeira vez que jogam juntos, mas talvez a segunda vez que se veem, porque treinaram duas vezes juntos. Sabemos que a situação é essa, vamos tentar recuperar outros jogadores. Espero o Marquinhos, porque certamente depois da pausa o Marquinhos poderá voltar a jogar.

O Éder está voltando, hoje tivemos a estreia do Juan. Vamos ter finalmente a possibilidade de poder escolher os atletas, em teoria, na melhor forma, porque vamos ter duas semanas de trabalho. Serão muito positivas, acredito que o futuro do São Paulo será melhor comparado com o que começou o campeonato.

São Paulo