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

Messi diz que está bem e elege Guardiola e Enrique como melhores técnicos

Guardiola abraça Messi durante jogo do Barcelona - David Ramos/Getty Images
Guardiola abraça Messi durante jogo do Barcelona Imagem: David Ramos/Getty Images

Colaboração para o UOL

26/12/2020 15h05

Lionel Messi está em uma temporada difícil no Barcelona. Depois de quase sair do clube, ele ou por uma queda de rendimento, e o time não se destacou. Em uma entrevista para o canal La Sexta, o argentino disse que superou essas dificuldades e também elegeu os melhores treinadores com quem já trabalhou.

"Pep Guardiola tem algo especial. Ele faz você ver as coisas de uma forma: como ele preparou as partidas, defensivamente e como atacar. Ele dizia exatamente onde era o jogo, como era preciso atacar para ganhar. Tive azar, entre aspas, porque ei muito tempo com Guardiola e Luis Enrique, os dois melhores. Tê-los com tanta frequência e tão rápido me fez crescer muito no futebol e na sabedoria tática que me ensinaram", opinou Messi.

Sobre as dificuldades vividas recentemente, Messi disse que realmente ficou incomodado no começo da temporada, porque queria ter saído para outro clube. Mas afirmou que atualmente está se sentindo bem e com vontade de vencer no Barcelona.

"Hoje estou bem. É verdade que ei muito mal no verão (da Europa). Isso veio de antes. O que aconteceu antes do verão, por causa do fim da temporada, do burofax e tudo mais... Aí eu arrastei um pouco no começo da temporada, mas hoje estou bem. Quero lutar seriamente por tudo o que está pela frente. Estou empolgado. Sei que a entidade atravessa um momento difícil, como clube e como time, e tudo o que rodeia Barcelona é difícil, mas estou ansioso por isso", assegurou Messi.

O contrato de Messi com o Barcelona vai acabar no final desta temporada. A imprensa espanhola especula que ele pode ir para o futebol dos Estados Unidos, para disputar MLS (Major League Soccer). Jordí Évole, jornalista que fez essa entrevista para o canal La Sexta, confirmou essa impressão e até indicou o time que deve contar com Messi em breve, o Inter Miami.

Outro tema abordado na entrevista foi a vida pessoal de Messi. "Sou privilegiado por tudo que vivi, mas há momentos em que gostaria de ser anônimo. Gostaria de poder aproveitar, ir a um mercado, um cinema ou um restaurante, principalmente quando estou com meus filhos", comentou Messi.