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

Comentaristas elogiam estreia de David Luiz no Flamengo: 'Deu água na boca'

David Luiz em ação pelo Flamengo diante do Barcelona-EQU - Staff Images / CONMEBOL
David Luiz em ação pelo Flamengo diante do Barcelona-EQU Imagem: Staff Images / CONMEBOL

Colaboração para o UOL

23/09/2021 15h21

Por um placar de 2 a 0, o Flamengo venceu ontem o Barcelona-EQU em partida válida pelo jogo de ida da semifinal da Libertadores. O confronto no Maracanã marcou a estreia de David Luiz com a camisa rubro-negra, e a atuação do atleta satisfez os espectadores.

"Gostei do David Luiz ontem, mas confesso que gostei mais do Andreas Pereira", disse PVC no programa Seleção SporTV. "Mas o David Luiz foi muito seguro. Ele é muito seguro. Ele é rápido, tem saída de bola, tem uma série de qualidades que vão melhorar o sistema defensivo do Flamengo, que teve problemas ontem. Tinha muito espaço. O Flamengo amassou o Barcelona no 1° tempo, mas deixou espaço, e o Barcelona criou oportunidades, podia ter feito 1 a 0. Mas o David Luiz fez uma belíssima estreia, diria que deu água na boca", continuou.

Com participações importantes na partida, o zagueiro brasileiro recém-chegado entrou como titular na equipe de Renato Gaúcho. "Ele foi bem.Tinha essa preocupação de muito tempo sem jogar e já participar de um jogo de semifinal, mas aí já entra a experiência dele, um jogador de 34 anos", comentou Roque Júnior.

"É importante ele entender o momento. O que ele tinha que fazer em uma estreia, é ser o mais simples possível, para conseguir, ainda mais depois de tanto tempo sem jogar, ir bem, e ele conseguiu. Defensivamente ele também foi bem, ajudou na construção, deu alguns es na saída de jogo (...) Em uma semifinal você não pode vacilar, são jogos muito difíceis, mas ele usou toda a experiência dele. Ele tem tudo para crescer ainda mais, porque vão vir outros jogos, vai pegar mais ritmo, vai conhecer ainda mais o time do Flamengo. Mas tem que ser da forma que foi ontem: sério, quando der para jogar, joga e quando não der, faça aquilo que tem que ser feito. Acho que esse é o ponto principal, que ele entendeu, e fez muito bem", afirmou o ex-jogador do Palmeiras.

O narrador Cléber Machado relembrou, ainda, sobre a agem do jogador pela seleção brasileira. David era um dos principais nomes da equipe comandada, na época, por Luiz Felipe Scolari, e, após a derrota histórica para a Alemanha em 2014, não voltou a receber tantas oportunidades com a camisa amarela.

"Quando o Felipão convocou o David eu aplaudi, falei: 'Nossa, que observação perfeita do Felipão, foi buscar o David Luiz'. O David teve um período ótimo na seleção brasileira e acho que depois da Copa do Mundo começou a ficar sendo questionado. Ontem o David jogou como o David que apareceu na seleção brasileira, sabendo que tem bons recursos para jogar mais sério. Quando o David não for o super-herói do jogo, ele pode ser muito importante para o time do Flamengo", declarou o também comentarista.