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

Fla avalia riscos de jogo contra Grêmio e mira time inteiro para sequência

Jogadores do Flamengo em treino no Ninho do Urubu - Marcelo Cortes / Flamengo
Jogadores do Flamengo em treino no Ninho do Urubu Imagem: Marcelo Cortes / Flamengo

Leo Burlá

Do UOL, no Rio de Janeiro

14/09/2021 04h00

Com a vaga na Copa do Brasil muito bem encaminhada após a goleada por 4 a 0 no jogo de ida, o Flamengo avalia os riscos da partida de amanhã (15) contra o Grêmio, 21h30, no Maracanã. Renato Gaúcho estuda caso a caso dos jogadores antes de tomar uma decisão em relação à montagem do time que vai a campo.

Mesmo mutilado em São Paulo, o grupo rubro-negro mostrou sua força para virar sobre o Palmeiras e vencer por 3 a 1. Com essa injeção de ânimo e ante a necessidade de ter o elenco inteiro para as decisões que estão na mira, a ideia é preservar a saúde dos jogadores e não correr riscos desnecessários.

Hoje (14), o grupo se reapresenta no Ninho do Urubu e o comandante irá começar a desenhar a sua equipe. Preservados contra o Alviverde, Rodrigo Caio e Renê, que já treinavam com os demais companheiros, podem ser novidades na relação. Kenedy, que ainda não estreou por estar em busca de melhor forma física, também pode pintar.

Os casos que inspiram um pouco mais de cuidados são os de Filipe Luís, Bruno Henrique e Diego. Considerados titulares absolutos de Renato, o trio ainda não tem presença confirmada, já que o plano é ter força total na quarta-feira (22) da semana que vem, quando a equipe inicia a disputa por uma vaga na final da Libertadores contra o Barcelona (EQU). O caso de Gabigol, que voltou com dores musculares após participar das Eliminatórias, também será estudado com carinho.

Outro que fez a luz amarela da Gávea acender foi Arrascaeta, que teve diagnosticado um estiramento na coxa ontem (13). O camisa 14 sentiu dores ainda no primeiro tempo do último jogo e foi tirado. O quadro do meia preocupa um pouco mais e ele já é dúvida para a semifinal.

Apresentado ontem como novo reforço do Fla, o zagueiro David Luiz terá sua situação regularizada e a ideia é que ele esteja apto a reforçar o Rubro-negro contra os equatorianos. Após apresentar o jogador, o vice de futebol Marcos Braz brincou sobre a situação.

"Posso afirmar que ele terá condição de jogo, seja na parte física ou em relação aos documentos. Se ele será escalado, eu não posso falar".

Nação de volta

Tão importante quanto o jogo em campo, o duelo contra o Grêmio tornou-se chave na batalha do Fla para ter público no Maracanã. O clube e as autoridades públicas estão mobilizados pela operação e a expectativa é por casa cheia.

Mesmo com a tentativa de 17 clubes em cassar a liminar que garante aos cariocas o direito de levar público aos estádios, nada indica que haverá uma mudança.

O presidente do STJD, Otávio Noronha, indicou a dirigentes da CBF que, por ora, não deve reconsiderar a liminar concedida. O Pleno do STJD ainda irá avaliar em colegiado o mérito da questão, provavelmente no dia 23. Logo, isso não acontecerá antes de quarta.

Flamengo