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

SPFC: Ceni sofre para achar lugar para Rigoni, que não encanta desde Crespo

Emiliano Rigoni, durante treino do São Paulo, no CT da Barra Funda - Rubens Chiri/São Paulo FC
Emiliano Rigoni, durante treino do São Paulo, no CT da Barra Funda Imagem: Rubens Chiri/São Paulo FC

Brunno Carvalho

Do UOL, em São Paulo

01/02/2022 04h00

Símbolo dos raros momentos bons do São Paulo no Brasileirão do ano ado, quando comandado por Hernán Crespo, Emiliano Rigoni tem tido dificuldades para brilhar desde a chegada troca de comandante. Se antes o argentino se destacava pela polivalência, agora com Rogério Ceni não consegue corresponder, independentemente da função com a qual é escalado.

Rigoni encerrou o Brasileirão como o jogador com mais participações em gols do São Paulo, com quatro bolas na rede e mais e quatro assistências. O desempenho, no entanto, foi praticamente todo realizado sob o comando do técnico argentino. Com Rogério Ceni, foram nove jogos pela competição nacional e apenas uma assistência.

Nas mãos do técnico brasileiro, Rigoni atuou em diversas posições, mas poucas vezes conseguiu brilhar. Ele já atuou como meia atrás de dois atacantes, aberto pela esquerda, aberto pela direita e também como segundo atacante, fazendo par com o compatriota Calleri ou com Luciano. Diante do Ituano, no domingo, Ceni tentou algo que Crespo não havia tentado: colocar o argentino centralizado no ataque, com Nestor, Sara, Patrick, Alisson e Nikão vindo de trás. Não deu certo.

Com Calleri no banco e Luciano afastado por uma lesão, Rigoni pareceu perdido na nova função. Ele deu apenas 11 toques na bola, com um chute para fora e outro bloqueado pela defesa do Ituano. Aos 35 minutos do segundo tempo, saiu para a entrada de Éder.

"É um jogador tecnicamente diferenciado. Estamos tentando encontrar o lugar onde se sinta mais à vontade. Jogou mais aberto no primeiro jogo, hoje [contra o Ituano] mais por dentro. Queremos encontrar uma posição onde ele renda como rendeu no Brasileiro do ano ado. Desde que eu cheguei, talvez ele não tenha produzido da mesma maneira como produziu", itiu Ceni.

Nas mãos de Hernán Crespo, Rigoni costumava atuar como um segundo atacante, tendo mais liberdade para se movimentar atrás do centroavante. O argentino, contudo, jogava no esquema 3-5-2, uma formação pouco utilizada por Rogério Ceni —o treinador afirmou que a tendência é jogar com uma linha de quatro defensores na atual temporada. Ceni tem preferência por formações que pedem jogadores abertos pelas pontas, com um centroavante atuando mais centralizado, sem um companheiro o rodeando.

A próxima chance de Rigoni se destacar será nesta quinta-feira (3). O São Paulo enfrenta o Red Bull Bragantino, fora de casa, pela terceira rodada do Paulistão, em partida que terá transmissão pelo UOL Esporte Clube e Estádio TNT, além do HBO Max. O time do Morumbi ainda procura a primeira vitória na competição.

São Paulo