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

Ceni vive turbulência no Flamengo e reforços viram alento para o técnico

Rogério Ceni se seca com toalha debaixo de chuva durante partida do Flamengo. Técnico vem convivendo com pressão na Gávea - Pedro H. Tesch/AGIF
Rogério Ceni se seca com toalha debaixo de chuva durante partida do Flamengo. Técnico vem convivendo com pressão na Gávea Imagem: Pedro H. Tesch/AGIF

Leo Burlá

Do UOL, no Rio de Janeiro

06/07/2021 04h00

A derrota por 1 a 0 no clássico diante do Fluminense aumentou a temperatura no caldeirão do Flamengo e trouxe uma dose extra de pressão ao técnico Rogério Ceni no comando, que vê o desgaste crescer na Gávea.

O cargo do treinador não está ameaçado no momento, mas Ceni queimou alguns créditos junto à diretoria com sua atuação no Fla-Flu, dentro e fora de campo. Durante o jogo, suas mexidas tornaram o Rubro-Negro mais vulnerável e fizeram o rival crescer. Fora dele, o tom mais alto na entrevista coletiva não agradou.

A seu favor, Rogério tem os títulos recentes e a boa avaliação do departamento de futebol, que entende que o momento é dificultado pela ausência de alguns dos principais nomes. Apesar do atenuante, a observação é contínua.

"Temos muitos jogadores na seleção. Jogávamos com quatro [camisas] dez no meio. Um foi vendido [Gerson], outro se machucou [Diego] e dois estão na Copa América [Arrascaeta e Everton Ribeiro]. Tivemos que mudar a maneira de jogar", justificou Ceni.

Em tempos de resultados não satisfatórios dentro das quatro linhas, o comandante começa a vislumbrar um cenário melhor para os desafios que se apresentam. Com suas seleções eliminadas da Copa América, Isla, Piris da Motta e Arrascaeta voltaram a trabalhar ontem (5) e devem pintar na equipe que encara amanhã (7) o Atlético-MG, 19h, no Mineirão, pelo Brasileiro.

Enquanto não tem todas suas peças à disposição, Rogério aguarda os sonhados reforços. A direção trabalha com cautela para não queimar as poucas balas disponíveis no cartucho, mas segue de olho em ao menos dois nomes de peso.

Embora não tenha havido nenhuma evolução recentes nas negociações, Thiago Mendes, Renato Augusto e Kenedy seguem na lista rubro-negra e a tendência é que as conversas avancem nas próximas semanas. Até receber os presentes desejados, o treinador terá que encontrar soluções dentro de casa.

"Queremos sempre vencer. Nem fazemos contas dos jogadores fora, dos desfalques ou não. O Flamengo quer sempre vencer. No ano ado, ganhamos o campeonato por um ponto e cada ponto deixado para trás é muito importante. Dominamos o jogo mais uma vez, tocando bem a bola e chutando a gol", disse ele.

Após três derrotas nos últimos cinco jogos, os atuais campeões encaram o Galo em jogo com ares de decisão. Antes do embarque para Belo Horizonte, o elenco treina na parte da manhã no Ninho do Urubu.

Flamengo