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

Rogério Ceni chega ao Flamengo com aval de Zico e diz querer 'ganhar tudo'

Rogério Ceni conhece sua "nova casa" em dia de apresentação no Flamengo

Do UOL, no Rio de Janeiro (RJ)

10/11/2020 14h02Atualizada em 10/11/2020 19h05

Rogério Ceni foi apresentado, no começo da tarde de hoje (10), como novo técnico do Flamengo. O treinador, que chega para substituir Domènec Torrent, revelou que enviou uma mensagem para Zico, maior ídolo da história do Rubro-Negro, para ter "autorização" para assumir a equipe da Gávea.

Ceni chega com contrato até o fim do ano que vem e já estreia amanhã (11), contra o São Paulo, clube do qual é um dos maiores ídolos, no primeiro encontro pelas quartas de final da Copa do Brasil.

"Para mim é um dia muito especial. Esse é 30º ano que trabalho com futebol e já enfrentei o Flamengo diversas vezes, no Maracanã, casa cheia. Vi Zico, Júnior... E poder estar aqui... Até mandei uma mensagem para o Zico para saber se poderia entrar aqui. É um cara único no futebol brasileiro. Ele, brevemente, me respondeu lá do Japão. Então, me sinto com a permissão de poder estar sentado nessa cadeira", disse. "Sem dúvida é o meu maior desafio como técnico."

O ex-goleiro fez elogios à torcida e ao elenco do Fla, ressaltando que é possível que o clube consiga repetir as conquistas a Libertadores e o Campeonato Brasileiro e, quem sabe, adicionar a Copa do Brasil nessa conta.

"Todo mundo deseja ganhar tudo. Essa é a grande verdade no futebol, só tem de entender quanto cada um está disposto a dar. Acho que é um grupo extremamente vencedor. Ganhou o Brasileiro e a Libertadores, citando os mais importantes do ano ado, e quem disse que não possível ganhar de novo? É difícil? Era difícil ano ado. Esse ano também será, mas nada é impossível para quem uma torcida apaixonada e jogadores de qualidade como o Flamengo tem", afirmou.

O treinador ressaltou que um convite do Rubro-Negro, neste momento, foi algo irrecusável.

"Primeiramente, sou muito agradecido ao Fortaleza pelo tempo que amos juntos. Sei que o torcedor fica triste, e eu logicamente, mas ele compreende o tamanho desse desafio. Um convite do Flamengo, no momento que o Flamengo vive, é difícil de recusar. Acho que é completamente natural e compreensível".

Curiosamente, já pensando longe, na próxima temporada, o novo comandante indicou contar com Yuri César, cria da base do Flamengo e que está emprestado ao Fortaleza.

Yuri César comemora gol pelo Fortaleza - Leonardo Moreira/Fortaleza EC - Leonardo Moreira/Fortaleza EC
Imagem: Leonardo Moreira/Fortaleza EC

"Eu conto. Ele é fora de série. Tem capacidade, consciência. É uma grata surpresa. Ele não perde o foco, mas já fez sete jogos e fica no Fortaleza. Acho que ele tem potencial para o Flamengo", garantiu.

Inicialmente, Rogério Ceni vai morar no CT Ninho do Urubu e disse querer também acompanhar treinos das categorias de base.

"É a única maneira, senão se perde muito tempo em trânsito e tudo mais. Vou ficar o tempo necessário para conhecer todos os setores. Prefiro ficar por aqui. E está superbonito, melhor que hotel (risos). Quero acompanhar treinos das categorias inferiores também", afirmou.

Questionado sobre o problema defensivo que o Flamengo vem apresentando, um dos motivos da demissão de Dome, assegurou que vai tentar "ajustar com a ajuda de todos"

"Só amanhã que vamos poder afirmar, mas erros defensivos são frutos de erros de sistema de jogo. Quando se tem um número elevado de gols sofridos, temos de tentar ajustar, com a ajuda de todos. São eles que vão resolver. O atleta é o mais importante. Nós buscamos soluções. Garanto que não é problema de apenas uma peça".

Flamengo