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

Santos

Jobson completa um ano no Santos com rara volta por cima no atual elenco

Jobson e Kaio Jorge comemoram gol e vitória sobre o Defensa y Justicia pela Libertadores - REUTERS/Agustin Marcarian
Jobson e Kaio Jorge comemoram gol e vitória sobre o Defensa y Justicia pela Libertadores Imagem: REUTERS/Agustin Marcarian

Eder Traskini

Colaboração para o UOL, em Santos

17/04/2020 04h00

Em 16 de abril de 2019, o Santos vencia a concorrência do Atlético-MG e do São Paulo para contratar o volante Jobson, grande destaque do Red Bull Brasil, equipe que terminou com a melhor campanha da primeira fase do Paulistão. Apesar da "pompa" da contratação, o atleta não teve espaço com o ex-técnico Jorge Sampaoli no ano ado, mas conseguiu uma improvável e rara volta por cima em 2020.

Jobson atuou apenas quatro jogos na temporada ada, sendo titular em somente um e somando meros 119 minutos em campo. Neste ano, sob comando do português Jesualdo Ferreira e aproveitando a ausência de Alison, lesionado, o volante já pulverizou os antigos números: foram oito jogos, cinco como titular, 458 minutos e até um gol marcado.

A volta por cima de um dos 14 reforços contratados na temporada 2019 é rara no atual elenco. Dos atletas preteridos por Sampaoli no ano ado, apenas Jobson conseguiu espaço na equipe santista.

Deste grupo, dois que não brilharam no ano ado seguem no elenco e na mesma situação: Uribe e Venuto. Outros dois sequer se encontram no plantel santista, casos de Felipe Aguilar, vendido ao Athletico-PR, e Cueva, que deixou o clube em litígio e hoje está no Pachuca (MEX).

O volante atuava com o número 20, mas recentemente atendeu a um pedido do centroavante Uribe e cedeu a numeração ao colombiano. Assim, ele recebeu do Peixe a camisa 8, que foi do volante Renato, ídolo de Jobson na infância.

Santista de coração, Jobson deu os primeiros chutes em uma escolinha Meninos da Vila em Itapecerica da Serra (Grande São Paulo), mas não teve chances na base do Peixe. Ele acabou se profissionalizando pelo rival Palmeiras e rodou um pouco antes de ganhar destaque no Náutico e chamar atenção do Red Bull.

O Peixe pagou cerca de R$ 4 milhões para tirar o volante de 24 anos do Red Bull. Jobson tem contrato com o Santos até abril de 2024.

Santos