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

Pressionado, Vítor Pereira segue convicto em evolução do Flamengo

Técnico Vítor Pereira está pressionado no Fla após fracassos em três torneios e derrota no clássico com o Vasco - Thiago Ribeiro/AGIF
Técnico Vítor Pereira está pressionado no Fla após fracassos em três torneios e derrota no clássico com o Vasco Imagem: Thiago Ribeiro/AGIF

Do UOL, no Rio de Janeiro

07/03/2023 04h00

A derrota para o rival Vasco no último domingo (5) — somada aos fracassos no Mundial de Clubes, na Recopa Sul-Americana e na Supercopa do Brasil — aumentou ainda mais a pressão sobre o trabalho de Vítor Pereira no Flamengo. Porém, mesmo com resultados frustrantes, o treinador segue convicto de que o elenco está em evolução na temporada.

Testes na equipe titular

Vítor Pereira tem feito experiências na formação da equipe titular, mas dá a entender que ainda não está totalmente convicto.

O treinador, por exemplo, já abriu mão do conhecido quarteto formado por Everton Ribeiro, Arrascaeta, Gabigol e Pedro, tendo colocado Everton no banco.

Contra o Vasco, sem Pedro, o treinador inovou mais uma vez, colocando três volantes (Thiago Maia, Vidal e Gerson), e Gabigol como um atacante mais centralizado.

Para o clássico com o Fluminense, Vítor Pereira vive a expectativa de poder contar com Pedro, mas não descarta também a possibilidade de apostar em Everton Cebolinha como um ponta.

Confiança na evolução em meio à "obrigação" do Carioca

Internamente no clube, há quem diga que o Campeonato Carioca se tornou o fiel da balança para a continuidade do trabalho de Vítor Pereira no Flamengo.

Já classificado para as semifinais, o treinador prepara a equipe para o clássico com o Fluminense amanhã (8), no Maracanã, e segue confiante de que a equipe está no caminho certo para evoluir:

"Uma equipe que joga como nós, que trabalha como nós, que tem trabalhado todos os dias de uma forma exemplar, hoje, para mim, faltaram os gols. Enfrentamos uma boa equipe, que tem seus argumentos, mas, do primeiro ao último minuto, trabalhamos. É o sentimento da equipe é de que estamos no caminho certo em termos de trabalho. Está faltando o resultado, os gols e a tranquilidade que isso nos dá".

Flamengo