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

Volpi fala sobre responsabilidade do elenco do São Paulo ao comentar empate

Do UOL, em São Paulo

30/05/2021 00h36

Responsável por garantir o primeiro ponto do São Paulo no Campeonato Brasileiro ao defender o pênalti batido por Nenê, na partida deste sábado (29), contra o Fluminense, o goleiro Tiago Volpi demonstrou satisfação com sua atuação no Morumbi, mas deixou o estádio insatisfeito com o resultado.

"O momento é bom, não adianta a gente querer dizer outra coisa. Começar (a temporada) da maneira como começamos, ganhando um título e classificando na Libertadores. Fizemos jogos convincentes na Libertadores e fomos campeões paulistas. O título tira um pouco da pressão, mas não diminui nossa responsabilidade e comprometimento. O São Paulo é um clube gigante. Não é porque ganhou um Campeonato Paulista que vamos achar que está tudo bem", frisou o goleiro, lembrando que o elenco ainda vai em busca de outros títulos nesta temporada.

Ao ser questionado sobre a defesa do pênalti batido por Nenê, Volpi lembrou que havia jogado com o meia no São Paulo, na temporada 2019, e tinha algumas lembranças sobre o jogador. O histórico entre ambos e sua percepção na hora da batida foram determinantes para evitar que o Fluminense saísse do Morumbi com a vitória.

"Acredito que a questão do pênalti é muito pessoal de cada goleiro. Procuro usar o feeling da partida, ver o corpo do adversário para tomar a decisão de escolher um lado ou esperar bater. Às vezes dá certo, outras não. Tenho tido uma felicidade no São Paulo em defender bastante pênaltis e ajudar meus companheiros", afirmou.

No domingo (31), Volpi e o restante do elenco do Tricolor do Morumbi ganham folga e se reapresentam na segunda-feira no CT da Barra Funda. Na terça (1), a equipe viaja ao Piauí para enfrentar o 4 de Julho — clube que disputa a Série D do Campeonato Brasileiro — no jogo de ida da terceira fase da Copa do Brasil.

Veja outros trechos da entrevista coletiva de Tiago Volpi:

Sobre sorteio da Copa Libertadores e a possibilidade de encarar uma equipe brasileira no mata-mata

Pelo o que tem se apresentado, essas oitavas de final da Libertadores não tem adversário para se escolher. Os dois lados ficaram bem fortes. Os segundos colocados têm times muito fortes, como são os casos de Boca Juniors e River Plate. Quem quer ser campeão tem que enfrentar todo o tipo de adversidade. É difícil escolher um adversário, sendo que essas oitavas de final prometem ser uma das mais agitadas nos últimos anos.

Título influenciou no desempenho do São Paulo?

Tudo pode ter um pouco de influência. Prefiro não olhar dessa maneira. Fizemos um grande jogo na terça, ganhamos, e hoje é uma situação de uma equipe que veio com uma proposta de jogo bem armada para se defender. A gente encontrou mais dificuldade, como é normal quando as equipes acabam fazendo o que o Fluminense fez hoje. Armaram uma boa estratégia. O Fluminense, uma equipe grande do nosso futebol, respeitou o São Paulo. Faz parte do nosso percurso, não dá para transformar isso em um problema.

São Paulo