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

OPINIÃO

Mauro Cezar: Rogério nunca teve time para bater de frente com o Flamengo

15/09/2022 14h06

Treinador que conquistou o Brasileirão de 2020 comandando o Flamengo, Rogério Ceni conheceu ontem a sua décima derrota em dez jogos contra o Rubro-negro, na eliminação pelas semifinais da Copa do Brasil. Para Mauro Cezar Pereira, a dificuldade de Ceni contra o clube carioca se deve muito pelo nível dos times que ele comandou nas vezes.

Na Live do Mauro Cezar, no Canal UOL, ele ressalta que Ceni nunca teve um elenco de nível semelhante ao do Flamengo nos outros clubes que comandou, o que dificultou para que pudesse ter com São Paulo, Cruzeiro e Fortaleza outro resultado que não a derrota. Apesar disso, ressalta o tanto que o treinador conseguiu incomodar mesmo com times inferiores.

"Ele sempre com um time inferior, Fortaleza, Cruzeiro, São Paulo, sempre com um time inferior, o São Paulo é inferior ao Flamengo claramente, não conseguiu ainda. Agora, os resultados são esses, agora, o São Paulo no jogo ado foi o time que mais incomodou esse Flamengo titular naqueles 3 a 1, foi o que mais incomodou o Flamengo, incomodou barbaridade, foi um time que jogou muito bem, mas é inferior realmente ao Flamengo", diz Mauro Cezar.

"Ele nunca teve em mãos um elenco que pudesse bater mais de frente como o do Atlético-MG ou o do Palmeiras, mais próximo do elenco do Flamengo, o que possa ser considerado do nível igual ou parecido", completa.

Veja o que mais rolou de interessante na opinião do colunista do UOL:

Mauro Cezar: Desafio do técnico Dorival Junior é istrar o elenco

Como já havia feito diante do Corinthians, na Libertadores, o Flamengo venceu o primeiro jogo fora de casa contra o São Paulo, na Copa do Brasil, e soube istrar a segunda partida, no Maracanã, chegando às finais das duas competições. Para Mauro Cezar, o trabalho do técnico Dorival Júnior agora é conseguir levar o elenco inteiro para as decisões da temporada.

"O grande desafio agora do técnico Dorival Junior é istrar bem a questão física dos seus atletas para os jogos que vão acontecer em outubro, jogos das finais da Copa do Brasil, contra Corinthians ou Fluminense, nos dias 12 e 19, com mando a ser definido, e no dia 29, dez dias depois do mata-mata nacional, o Flamengo vai até Guayaquil, no Equador, enfrentar o Athletico-PR".

Mauro Cezar: Quem pode e deve sonhar com o Brasileiro é o Internacional

O Flamengo ficou a nove pontos do Palmeiras ao empatar no último fim de semana com o Goiás, perdendo a vice-liderança para o Internacional, que soma oito pontos a menos que o time de Abel Ferreira, mas tem na última rodada o confronto direto no Beira-Rio. Para Mauro Cezar, a equipe treinada por Mano Menezes é a que pode brigar pelo título nos pontos corridos.

"O Inter é o time que pode até sonhar com isso, acho que deve sonhar, claro, é um clube grande, tem que pensar grande, mas é muito difícil para o Inter, evidentemente, como para o Flamengo ficou mais ainda e o Flamengo tem outras prioridades porque tem a possibilidade de ganhar a Copa do Brasil e a Copa Libertadores da América nesses dois mata-mata, o time titular jogando essas competições eliminatórias", conclui.

A Live do Mauro Cezar vai ao ar uma vez por semana, analisando os destaques do futebol

Quando: Toda quinta-feira, às 10h30

Onde assistir: Ao vivo na home do UOL, no UOL no Youtube e Facebook do UOL.

Veja a íntegra do programa: