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

Preparador do Palmeiras vê Jaílson tecnicamente apto a jogar por mais tempo

Goleiro do Palmeiras, Jailson defende pênalti em jogo contra o América-MG - Cesar Greco/Palmeiras
Goleiro do Palmeiras, Jailson defende pênalti em jogo contra o América-MG Imagem: Cesar Greco/Palmeiras

Diego Iwata Lima

De São Paulo

30/06/2021 04h00

Há um ano no Palmeiras, Rogério Godoy, preparador de goleiros, tem três jogadores muito diferentes sob seu comando. Weverton, 33, é goleiro da seleção brasileira e está no auge. Vinícius Silvestre, 27, tem poucas horas como titular e carece de tempo de jogo. E Jaílson, 39, caminha para a parte final de sua carreira. Sobre o veterano, que só tem mais seis meses de contrato, Godoy tem uma opinião contundente:

"Tecnicamente, ele tem totais condições de seguir jogando", afirmou ele em entrevista ao UOL. "Não fala de outros aspectos, como o financeiro, falo apenas pelos pontos de vista técnico e físico", enfatiza.

"Basta observar os jogos que o Jaílson vem fazendo. Ele comprou o nosso trabalho e está muito bem preparado", disse. "Ele treina com os garotos, faz o treino mais intenso", revelou. "Por isso entrou bem, mesmo estando sem jogar há um tempo".

Mas é quando fala sobre Weverton que o treinador realmente se derrete. Tendo trabalhado com Dida, Marcelo Grohe e outros, ele vê em Weverton o atleta mais impressionante que já treinou.

"Ele tem o kit completo", diz ele, se referindo às habilidades defendendo com as mãos e iniciando o jogo com os pés.

Fã de Taffarel e Chilavert, Godoy chegou ao Palmeiras depois de 15 anos no Grêmio, por indicação de Vanderlei Luxemburgo, com quem trabalhara no clube gaúcho em 2012. Juntos, eles conquistaram o Campeonato Paulista. O técnico saiu pouco depois. Mas Godoy seguiu no clube e participou da temporada mais vitoriosa da história verde.

De Luxa, que o indicou, para um técnico português que jamais havia trabalhado no Brasil, a transição de Rogério poderia ter sido complicada. Não foi. Muito porque o trabalho de preparação de goleiros brasileira é avançada em relação ao resto do planeta.

"Quando o Abel chegou, ele me procurou para dizer que me daria uns artigos europeus sobre preparação de goleiros", conta ele. "Depois de um tempo, fui perguntar sobre os artigos. Ele me disse: "Não, vamos deixar assim, para eu não te atrapalhar" ", revelou, entre risos.

Weverton terá perda de ritmo pelo tempo sem jogar

Rogério explicou que Weverton terá uma perda de ritmo por conta do tempo apenas treinando na seleção. Até porque, a rotina que ele vinha tendo no Palmeiras não era de muito treino.

"Naquela época em que o Palmeiras estava jogando quase três vezes por semana, havia dias que os outros goleiros treinavam, e o Weverton só recuperava", disse ele, usando o jargão futebolístico para um tipo de treino que mais regenera fisicamente do que desgasta.

Para reverter esse quadro de perda de ritmo com a seleção, Godoy tem só uma recomendação: "Tem que colocar para jogar", diz ele.

Aos 51 anos, Rogério Godoy tem um claro apreço pela função que exerce hoje. E é nela que ele conquistou os títulos que não ganhou como jogador, pelo pequeno Clube Esportivo Aimoré, onde ou a maior parte de sua carreira.

"Eu digo que não fui goleiro, fui um dublê de goleiro", brinca. "Goleiro de verdade é quem joga nos clubes grandes. Nos pequenos, você é só dublê", diz o profissional, por cujas mãos, para usar a analogia dele, aram alguns dos atores mais importantes da posição no Brasil.