;(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 tem desempenho inferior a Dome e vê pressão por arrancada no Flamengo

Rogério Ceni tem aproveitamento de 38% nos sete primeiros jogos pelo Flamengo e é pressionado por resultados - EFE/Bruna Prado POOL
Rogério Ceni tem aproveitamento de 38% nos sete primeiros jogos pelo Flamengo e é pressionado por resultados Imagem: EFE/Bruna Prado POOL

Alexandre Araújo e Bernardo Gentile

Do UOL, no Rio de Janeiro

08/12/2020 04h00

A vida de Rogério Ceni não tem sido nada fácil no Flamengo. Com sete jogos à frente do clube, o treinador já encara eliminações na Copa Libertadores, o principal objetivo do Rubro-Negro na temporada, e Copa do Brasil, além de resultados ruins também no Campeonato Brasileiro. Até agora foram três empates, duas derrotas e apenas duas vitórias, o que representa aproveitamento de 38%.

Nem mesmo o criticado Domènec Torrent teve início tão complicado como esse. No mesmo recorte de sete partidas, o catalão obteve três vitórias, dois empates e duas derrotas: 52% de aproveitamento. O treinador espanhol foi muito criticado por tentar mudar a filosofia de Jorge Jesus, que colecionou títulos importantes pelo Flamengo antes de fechar com o Benfica.

Mesmo assim, os números de Dome foram superiores ao de Ceni até o presente momento. A situação fica ainda pior quando avança na análise e fecha os números completos do catalão no Flamengo. Nos 26 jogos, obteve 15 vitórias, seis derrotas e cinco empates, o que representa 64% dos pontos disputados. Pesou, no entanto, três goleadas sofridas no caminho: 5 a 0 para Del Valle (Libertadores), 4 a 1 para o São Paulo e 4 a 1 para o Atlético-MG, ambos pelo Brasileiro.

O aproveitamento de Dome, de maneira geral e simplista, deixaria o Flamengo na vice-liderança do Brasileiro, atrás apenas do São Paulo, com 68,1%. Já com apenas os números atuais de Ceni, o Rubro-Negro estaria apenas no meio da classificação com números parecidos com Athlético, Bahia e RB Bragantino.

A diretoria do Flamengo entende que o momento é de apoio a Rogério Ceni. Há um consentimento geral que que o treinador faz um grande trabalho nos bastidores e que os resultados vão melhorar. O problema é que há certa pressa para que isso aconteça. Segundo apuração do UOL Esporte, os cartolas contam com uma arrancada do Fla para seguir vivo na luta pelo bicampeonato do Brasileiro, única competição que resta ao Rubro-Negro na temporada.

Apesar da eliminação na Libertadores, que veio com um empate com o Racing, o Flamengo já está com uma invencibilidade de quatro jogos - duas vitórias e dois empates. O triunfo no clássico sobre o Botafogo, no último sábado (5), acalmou os ânimos da torcida que esperam os próximos os da equipe.

Com 42 pontos, na terceira colocação, o Flamengo terá uma sequência de dois jogos no Maracanã: Santos (domingo, dia 13) e Bahia (20). Em seguida, viaja para visitar o Fortaleza antes de encarar mais um clássico com o Fluminense. A expectativa é que o time consiga encaixar uma arrancada para seguir com grandes objetivos na temporada.

Flamengo