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

Militão aproveita ausências de Ramos e Varane para se consolidar no Real

Eder Militão em ação pelo Real Madrid - Susana Vera/Reuters
Eder Militão em ação pelo Real Madrid Imagem: Susana Vera/Reuters

Do UOL, em São Paulo (SP)

18/04/2021 19h14

O Real Madrid empatou em 0 a 0 contra o Getafe, hoje à tarde (18), e perdeu a chance de deixar a diferença para o líder Atlético de Madri em apenas um ponto na tabela de classificação do Campeonato Espanhol. No entanto, o técnico Zinedine Zidane tem um motivo para comemorar: a consistência de Éder Militão no time merengue.

A equipe madrilena ou por um momento delicado para montar sua zaga: o zagueiro Sergio Ramos realizou uma cirurgia para corrigir uma lesão no menisco interno do joelho esquerdo, em fevereiro, quando pôde retornar, no dia 31 de março, sofreu uma nova lesão, dessa vez na panturrilha esquerda. Além disso, a referência do time testou positivo para covid-19 e deve ficar afastado do elenco até o dia 26 deste mês.

O defensor francês Raphaël Varane, titular absoluto ao lado do veterano espanhol, também acabou testando positivo para o coronavírus e só deve retomar aos treinos no dia 23. Os problemas foram tantos que a zaga de hoje contou com Militão e Víctor Chust, de apenas 21 anos.

Militão chegou ao Real no início da temporada 2019/20, vindo do Porto por 50 milhões de euros, e jogou 20 partidas: 18 vezes como zagueiro, uma de lateral direito e uma como lateral esquerdo — quando o defensor se destacou no São Paulo ficou conhecido por ser polivalente e exercer a função na defesa também como lateral.

Em 2020/21, ele atuou em 12 partidas e todas como zagueiro. Foi o titular da zaga nas duas partidas das quartas de final da Liga dos Campeões, contra o Liverpool, onde o time merengue se classificou com um placar agregado de 3 a 1.

Aos 23 anos, Militão tem demonstrado que pode ser o futuro do Real Madrid, com contrato até junho de 2025, e em meio as "novelas" envolvendo Sergio Ramos e Varane. O espanhol de 35 anos não renovou seu contrato ainda e já pode com outra equipe de graça. De acordo com a imprensa internacional, o francês acredita que seu ciclo no time merengue acabou e ele quer 'respirar novos ares'.

Os jornais espanhóis repercutiram a atuação do zagueiro brasileiro de forma muito positiva. O 'Marca' disse que o defensor foi 'uma das poucas boas notícias do jogo' e o 'As' afirmou que será vital para o restante da temporada do Real que Militão siga nessa 'forma excelente'.