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

Corinthians

'Esquecido' no Corinthians, Cafú aguarda investida da Arábia Saudita

Jonathan Cafú se reapresentou ao Corinthians após empréstimo - Rodrigo Coca/Agência Corinthians
Jonathan Cafú se reapresentou ao Corinthians após empréstimo Imagem: Rodrigo Coca/Agência Corinthians

Yago Rudá

Do UOL, em São Paulo

20/01/2022 04h00

O futuro do atacante Jonathan Cafú segue indefinido. O jogador está treinando no CT Joaquim, mas, fora dos planos do técnico Sylvinho para 2022, apenas completa as atividades com o restante do elenco do Corinthians. Há a expectativa de acordo com um clube da Arábia Saudita, porém uma negociação não deve ser iniciada antes do início do Campeonato Paulista.

Depois de defender o Cuiabá na temporada ada, Cafú foi logo informado pelo Corinthians de que não seria aproveitado pela atual comissão técnica. Como não acertou com ninguém antes do dia 10 de janeiro, o atacante foi obrigado por força de contrato a se reapresentar com o restante do elenco.

Nos últimos dias, realizou exames médicos, testes de força, mobilidade e iniciou a preparação física e técnica com seus companheiros de trabalho no centro de treinamento corintiano. Nas atividades com bola, no entanto, Cafú apenas preenche espaço nos treinamentos e não disputou nem sequer um minuto dos jogos-treino contra Inter de Limeira e Audax.

Neste cenário, os empresários do atacante correm contra o tempo para encontrar um novo clube ao atleta, que possui contrato com o Corinthians até dezembro de 2023. Com agens por Bulgária, Sérvia, França e Arábia Saudita, Jonathan Cafú tem mercado no futebol estrangeiro e nas últimas semanas recebeu sondagens de clubes do Oriente Médio.

Um acordo ainda não chegou a ser costurado pelos agentes do atacante, mas há a expectativa de acerto com uma equipe saudita, que não teve seu nome revelado. Os árabes, no entanto, não devem fazer qualquer movimento antes do início da próxima semana. Por isso, no dia 25 de janeiro — data de estreia do Corinthians no Paulistão — é muito provável que Cafú ainda esteja no CT Joaquim Grava.

Ciente da situação e do valor de mercado do atacante, a diretoria do Corinthians estuda pedir alguma compensação financeira pelo empréstimo — mesmo sabendo que Cafú não será aproveitado por Sylvinho.

Corinthians