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

Rodrigo Coutinho

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Coutinho: João Paulo foi um alento para a temporada santista

Colunista do UOL

13/12/2021 12h31Atualizada em 13/12/2021 12h31

O ano de 2021 não deixará saudades na Vila Belmiro. O Peixe lutou contra o descenso no Paulistão e no Brasileirão. Caiu na fase de grupos da Libertadores, nas quartas de final da Copa do Brasil, e teve três treinadores na temporada. Tudo isso em meio ao desmonte do time que foi vice-campeão da Libertadores contra o Palmeiras. O crescimento de João Paulo, porém, destoa do resto e é algo muito significativo para o futuro da equipe.

Criado nas pródigas divisões de base do Santos, o arqueiro de 26 anos só foi ter sua maior sequência como titular em 2021. Na temporada ada revezou com John na meta e perdeu espaço no momento mais importante, perto da decisão da Libertadores. Chegou a ser reserva em algumas partidas na atual jornada, mas recuperou a condição na equipe principal a partir da 6ª rodada do Brasileirão e foi um dos destaques da posição.

O curioso é que mesmo com pouco espaço ao longo dos últimos anos, João Paulo jamais foi emprestado pelo Peixe. Foi relacionado pela primeira vez no longínquo 2013, quando esteve no banco de reservas com apenas 18 anos, numa derrota para a Portuguesa pelo Brasileirão daquela temporada. Claudinei Oliveira era o treinador. De lá pra cá, ficou um ano sem jogar - 2018 - e se profissionalizou a partir de 2016.

01 - Ivan Storti/Santos FC - Ivan Storti/Santos FC
João Paulo em ação pelo Santos diante do Flamengo, no Maracanã
Imagem: Ivan Storti/Santos FC

Sua primeira partida como titular aconteceu no Rio de Janeiro, em 2017, um 0x0 contra o Vasco, pelo Campeonato Brasileiro. Disputou o Brasileirão de Aspirantes em 2019 e subiu de nível no elenco após a saída de Vanderlei para o Grêmio. Tanto tempo de clube, mesmo com pouca rodagem de jogos, explica o comportamento em campo. João Paulo é um dos líderes do elenco.

Mostra atitude e participação ao orientar os companheiros, muitas vezes de forma veemente. Isso o aproximou ainda mais dos torcedores e influenciou para que os últimos treinadores dessem sequência de jogos. Já são quase 100 partidas profissionais no Santos. No último Brasileirão, João Paulo evitou que sete chances reais de gol parassem dentro da meta santista nos 33 jogos que esteve em campo, foi o 6º melhor da posição neste aspecto.

Certamente a luta contra o rebaixamento, que chegou a ser dramática em determinado momento e depois foi superada, seria muito mais difícil sem ele no gol. Se tem algo que caracteriza a temporada 2021 de João Paulo é estar presente com eficiência nas situações mais críticas. Chegou a cometer falhas, mas sem grandes efeitos para os objetivos do clube.

Podemos destacar o posicionamento e a velocidade para reagir em chutes de curta distância. Tem boa envergadura e consegue ter um tempo de reação eficiente com os braços para evitar os gols. Fecha bem o ângulo em situações de 1x1 diante dos atacantes rivais e não compromete ao sair jogando com os pés. Pode ganhar mais velocidade nos deslocamentos laterais com as pernas para chegar nas bolas batidas de longa distância nos cantos.

Com contrato renovado até dezembro de 2026, João Paulo tem todas as condições para se estabelecer como goleiro titular do Santos por muitas temporadas e entrar no hall de jogadores marcantes da rica história do clube. O Peixe possui Arzul, um dos melhores preparadores de goleiros do futebol brasileiro. Ele certamente saberá aparar detalhes negativos do jogo do arqueiro santista, além da própria sequência de partidas que fará o camisa 34 evoluir.