;(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: Dorival não quer se complicar com jogadores como o antecessor

Do UOL, em São Paulo

06/10/2022 14h12

O lado direito da defesa do Flamengo voltou a ser um problema na partida contra o Internacional, de acordo com a avaliação de Mauro Cezar Pereira, que esperava ver ganhando tempo em campo o uruguaio Guillermo Varela, que foi contratado nesta temporada, mas parece ser a terceira opção na hierarquia do técnico Dorival Júnior na concorrência com Rodinei e Matheuzinho.

Durante a Live do Mauro Cezar, no Canal UOL, o jornalista afirma que Dorival Junior deixa claro ao apontar esta hierarquia que não pretende se indispor com o elenco, evitando assim o risco de ar pelos mesmos problemas que derrubaram o português Paulo Sousa.

"Na coletiva, o Dorival declarou que o Matheuzinho tem treinado, está há mais tempo, ou seja, fica muito claro que existe uma hierarquia por tempo de casa, ele não quer se complicar com os jogadores como seu antecessor Paulo Sousa se complicou após algumas decisões, é bem nítido isso", diz Mauro Cezar.

"No Flamengo de hoje, o técnico é refém do grupo de jogadores. Se ele resolver desagradá-los, ele pode se complicar e o Dorival sabe muito bem disso, não vai falar isso, mas deixa claro para qualquer um que preste um pouco de atenção e isso pesa nas suas escolhas. O Flamengo com isso segue com esse problema muito sério", completa.

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

Mauro Cezar: Jogo com o Inter mostrou ao Flamengo problemas claros

Não foi apenas a lateral direita do Flamengo que não funcionou na partida contra o Inter. O ataque que ou zerado no Maracanã diante de um time fechado também é considerado por Mauro Cezar em relação à falta de alternativas para vencer, o que na sua visão foi um bom teste para a situação que a equipe deverá encontrar na final da Libertadores contra o Athletico-PR.

"O Flamengo não conseguiu furar o bloqueio defensivo do Inter, que também fez um favor ao Flamengo quando se fechou com uma linha de cinco, com três zagueiros, negou espaços e o Flamengo só com cruzamentos na área, abrindo o campo, alargando o campo com a entrada do Matheuzinho pela direita, para jogar aberto e o Cebolinha pela esquerda, mas cruzando muitas bolas e criando muito pouco com tabelas, chegadas, infiltrações, com jogadas tramadas. É importante porque é muito provável que o Flamengo enfrente esse tipo de defesa contra o Athletico-PR", 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: