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

Paris Saint-Germain

Thiago Silva diz que faltou sensibilidade ao PSG e cita Sergio Ramos

Thiago Silva com a braçadeira de capitão da seleção brasileira durante a final da Copa América contra a Argentina, em julho - MB Media/Getty Images
Thiago Silva com a braçadeira de capitão da seleção brasileira durante a final da Copa América contra a Argentina, em julho Imagem: MB Media/Getty Images

Colaboração para o UOL, em São Paulo

28/08/2021 22h30

O zagueiro Thiago Silva, do Chelsea, itiu que ficou triste com a maneira com que deixou o PSG. O jogador entende que o clube francês poderia ser mais sensível no fim de sua agem, uma vez que ele defendeu a equipe por oito anos.

Thiago Silva ainda disse que o fato de não ter recebido nenhuma oferta para renovar seu contrato e citou Sergio Ramos como um caso parecido com o seu - pela idade do espanhol - e que foi tratado de outra maneira pela diretoria do clube espanhol.

"Eu estou tranquilo em relação ao PSG. Nos oito anos que ei em Paris, eu me entreguei pelo clube, como me entrego em qualquer time que eu jogo. Por isso que eu disse que faltou sensibilidade no momento da despedida. Embora estivesse na pandemia, poderia ter sido feito algo. Não foram oito dias ou oito meses, foram oito anos de muitas vitórias, de muito trabalho para poder colocar o PSG no patamar que está hoje. Não fiz isso sozinho, mas tive uma parcela de contribuição", declarou Thiago Siva em entrevista ao Bola da Vez, da ESPN Brasil, exibida hoje (28).

"Não tinha dúvida de que o PSG continuaria investindo porque tem o desejo de conquistar a Champions. Então, é uma página virada, mas, ao mesmo tempo, eu reflito muito, penso muito no que aconteceu. Nada contra o Sergio Ramos, mas no momento em que ofereceram dois anos de contrato para ele, ele tinha a mesma idade que eu tinha ano ado. Isso me deixou realmente triste. Não falei para ninguém. Parece que não tinha feito nada pelo clube. Não me ofereceram nada", lamentou.

Por fim, o defensor negou que não tenha aceitado uma redução salarial e revelou que, no Chelsea, ganha "menos da metade" do que recebia no PSG.

"E muitos torcedores acharam que eu queria manter o salário. Não tem nada a ver. Tanto que no Chelsea, eu ganho menos da metade. Não existia isso de eu não querer abaixar o salário. Esse é o meu sentimento, mas estou muito feliz no Chelsea. Fui muito bem recebido e tem pessoas que foram muito importantes para eu vir. Sou muito grato ao Frank Lampard. Se não fosse o 'ok' dele, eu não seria o campeão da Champions League", finalizou.

Paris Saint-Germain