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

Palmeiras

Com contrato até o fim do ano, Jailson quer renovar com Palmeiras

O goleiro Jailson, da SE Palmeiras, durante treinamento, na Academia de Futebol. - Cesar Greco/Palmeiras
O goleiro Jailson, da SE Palmeiras, durante treinamento, na Academia de Futebol. Imagem: Cesar Greco/Palmeiras

[email protected] (Redação)

07/06/2021 07h00

O veterano Jailson é um dos atletas do elenco com contrato apenas até dezembro. Escalado como titular na vitória sobre a Chapecoense, alcançada na noite de domingo, o goleiro manifestou o desejo de novamente renovar seu vínculo com o Palmeiras ao final da partida disputada no Allianz Parque.

"Toda vez que vai chegando ao fim do meu contrato, ficam essas conversas. Estou muito tranquilo. Vai fazer sete anos que estou no Palmeiras, muito feliz. Toda vez que renovei, foi sempre no último mês. Então, estou bem sossegado, muito tranquilo. Aqui é minha casa e quero continuar por mais um ano", disse Jailson ao Premiere.

Contratado em 2014, o goleiro de 39 anos é o atleta há mais tempo no grupo profissional e acumula 91 partidas pelo Palmeiras. Jailson integrou o elenco em títulos de Copa do Brasil (2015 e 2020), Campeonato Brasileiro (2016 e 2018), Campeonato Paulista (2020) e Copa Libertadores (2020).

Com Weverton a serviço da seleção brasileira, Jailson venceu a concorrência com Vinícius e teve a chance de jogar como titular contra CRB e Chapecoense. Contra o time de Santa Catarina, fez boa defesa em chute de Fabinho, mas falhou no gol de falta convertido por Busanello.

"Parabéns à equipe. Conseguimos o resultado positivo dentro de casa e vamos dar continuidade no trabalho. Tem eu, o Vinícius, o Mateus. Quando precisar, tenho certeza que vai dar conta do recado. Agora, não foi diferente. O professor optou por mim e, graças a Deus, conseguimos fazer um grande jogo", declarou o veterano.

Além do goleiro Jailson, o meio-campista Felipe Melo e o atacante Willian também têm vínculo com o Palmeiras apenas até o final desta temporada. Portanto, a partir do mês de julho, os três jogadores já poderiam um pré-contrato com outros clubes.

Palmeiras