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

Flamengo

OPINIÃO

Mauro Cezar diz que o Flamengo anima pelo comportamento e as experiências

16/01/2023 09h18

O Flamengo venceu a segunda Campeonato Carioca, goleando por 4 a 1 a Portuguesa-RJ, ontem (15), no Maracanã. No Posse de Bola, o comentarista Mauro Cezar Pereira aprovou a apresentação do time rubro-negro, que se prepara para a disputa da Supercopa do Brasil e também pensa no Mundial de Clubes.

"O que animou mais foi o comportamento do time, a forma como os jogadores se apresentaram num coletivo diferente daquilo que vinha acontecendo com o Dorival. Agora, são mais jogos pela frente. Ele falou que vai continuar escalando a chamada 'força máxima', dos jogadores que ele tiver a disposição, para preparar o time para o dia 28. Então isso foi bom. Foi interessante de ver, foram experiências interessantes, eu diria", disse Mauro Cezar.

Corinthians horrível

"O futebol do Corinthians foi algo absolutamente assustador. Já estou considerando que é o primeiro jogo da temporada, não estou dizendo que final de campeonato. O Bragantino ganhou de 1 a 0, mas vamos lá, o Cássio fez três defesaças. Dessas três, uma impressionante. O Bragantino cabeceou uma bola na trave. Foi um vareio do Bragantino do começo ao fim. O Bragantino jogou nessa primeira rodada, um futebol muito bom. O Corinthians colaborou muito. A questão dessa atuação ruim, o que preocupa o corinthiano, não é só a atuação ridícula, é você olhar e ver: vai melhorar muito? Por que eu tenho dúvidas", disse Vitor Guedes.

Apoio ou acomodação

"As declarações do pós-jogo, dos jogadores, são de que o clima está bom, o Roger Guedes repetiu isso. Basicamente os jogadores bancaram a permanência do Lázaro. Queriam o Lázaro, como antigamente queriam o Sylvinho. Isso tem um lado positivo, pois os caras vão jogar pelo treinador, em tese, mas na prática não jogaram nada. Esse apoio ao Lázaro, que poderia significar raça, querer mostrar para bancar um cara que eles querem, se mostrou, nesses primeiro momento, acomodação", disse Vitão.

Ceni sem desculpa

"Você tem o debate do jogo e o debate da coletiva do Rogério. E a coletiva de novo é:'eu não estou satisfeito com o elenco que tenho. Eu preciso de jogadores de mais velocidade'. Sabe o que eu acho interessante, vendo manifestações de setoristas ou de jornalista mais jovens, mais táticos que acompanham o São Paulo: até eles falaram chega, basta. Eles, não sou que 'vim de longe', tô falando dos mais atuais. Nem eles aguentam mais essa conversa. O Rogério tem uma coisa a fazer: ele tem um bom elenco nas mãos, faça disso um time bom. Chega de desculpa de faltar jogador. E que ele seja mais explicito na questão de quem ele pediu e quem não pediu", disse Arnaldo Ribeiro.

Palmeiras decepcionou

"O Palmeiras fez um jogo muito fraco. 39 cruzamentos, logo no começo do jogo já tinha cruzado, em 13 minutos, seis vezes na área do São Bento, um time que veio da segunda divisão. Criação zero, muito pouca imaginação. Um jogo muito aleatório e muito previsível desde o momento em que a bola rolou. E evidente que faz falta o Danilo e faz falta o Scarpa. Mas muita falta. Essa ideia de que o time mudou, de que o técnico vai montar o time num outro sistema, sim, pode montar. Mas para que isso funcione vai ser uma caminhada, ao que tudo indica. Vai entrar dinheiro da venda do Danilo, então o Palmeiras precisa de fato ir ao mercado", disse Mauro Cezar.

Confira o programa na íntegra

Flamengo