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

PSG, Barça, MLS ou Arábia? O que sabemos sobre o futuro de Messi

Lionel Messi, do PSG, na partida contra o Montpellier pelo Campeonato Francês. - Jean Catuffe/Getty Images
Lionel Messi, do PSG, na partida contra o Montpellier pelo Campeonato Francês. Imagem: Jean Catuffe/Getty Images

Do UOL, em São Paulo (SP)

06/02/2023 09h45

O contrato de Lionel Messi com o PSG vai até o dia 30 de junho deste ano. O craque tem em seu vínculo com o clube francês uma opção de renovação por mais uma temporada, mas já pode com qualquer outro clube como um jogador livre no mercado da bola.

Messi tem negociações em andamento?

Diretor do PSG quer que Messi siga no projeto. Luis Campos afirmou em entrevista ao programa Teléfoot que as partes estão discutindo um novo contrato.

No momento, estamos em negociações com Messi para sua renovação. Eu gostaria de mantê-lo neste projeto, não posso esconder. Estamos discutindo para atingir o objetivo e fazer ele continuar com a gente", afirmou o dirigente.

Barcelona sonha, mas realidade é diferente. A imprensa espanhola crava o Barça como um dos possíveis destinos de Lionel Messi. O jogador fez história no clube e não queria sair quando se transferiu para o PSG.

Joan Laporta, presidente da equipe catalã, disse, no final do ano ado, não querer criar expectativa nos torcedores sobre uma possível volta de Messi.

"É óbvio que gostaria que ele [Messi] voltasse um dia. Adoraria, mas não podemos gerar de acordo com quais expectativas. O que não quero é criar expectativas que tenham muita dificuldade. As alavancas foram feitas para salvar o clube porque estava em uma situação muito difícil", disse Laporta.

Estados Unidos e Arábia aparecem como destinos alternativos

O Inter Miami quer Lionel Messi. Antes do acerto de Messi com o PSG, a imprensa internacional colocou o Inter Miami, time do ex-jogador David Beckham, como um interessado no argentino.

Durante a Copa do Mundo, o site The Athletic afirmou que a equipe da MLS estava muito confiante na contratação do atleta para liderar um projeto grandioso no clube.

Após Cristiano Ronaldo, Arábia também quer Messi. Segundo informações do jornal espanhol "Marca", Al Hilal e Al Ittihad são os dois clubes interessados no argentino.

Há rumores de que os valores que ultraariam os de Cristiano Ronaldo — 200 milhões de euros por ano (R$ 1,1 bilhão). Seriam cerca de 350 milhões de euros por temporada (R$ 1,9 bilhão, na cotação de hoje).

Os clubes têm pedido "ajuda" ao governo saudita para poder fazer uma oferta desse nível.