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

Fluminense

Desempenho pesa e Roger vê temperatura subir em semana decisiva no Flu

Caio Blois e Leo Burlá

Do UOL, no Rio de Janeiro

16/08/2021 04h00

A derrota do Fluminense por 4 a 2 para o Internacional aumenta a temperatura no clube e faz subir a pressão sobre o trabalho do técnico Roger Machado.

Acuado pelo empate por 2 a 2 contra o Barcelona, resultado que deixou o Flu em situação delicada nas quartas de final da Libertadores, o comandante não conta com a simpatia de boa parte da torcida tricolor e o desempenho faz a situação piorar.

"A frustração e o desânimo no vestiário demonstram a insatisfação que um resultado assim reflete. Temos de ter serenidade, era importante levar essa confiança para a Libertadores. As equipes vão ar por maus momentos, seja por suspensão, lesão ou janela de transferências. O resultado de 4 a 2 é muito ruim, temos uma partida importante quinta e temos de estar com a confiança no alto", disse Roger.

Internamente, a performance preocupa até mais do que os resultados, embora o tropeço em Porto Alegre faça com que os tricolores tenham terminado o domingo a dois pontinhos da zona de rebaixamento do Brasileiro.

Em Porto Alegre, os erros individuais e técnicos foram decisivos para o revés, ainda que o time tenha tido alguns lampejos de bom futebol no Beira-Rio. O comandante, no entanto, demorou um pouco a tentar as mexidas e a equipe foi castigada nos acréscimos.

A edição de 2018 havia sido a última em que o Flu tinha sofrido quatro derrotas seguidas na Série A. Naquela ocasião, o Tricolor foi derrotado em sequência por Paraná, Flamengo, Atlético-MG e Santos, e só se livrou do descenso na 38ª e última rodada, em vitória sofrida contra o América-MG.

Desde 2006, quando a competição em pontos corridos ou a ter 20 times, isso se repetiu cinco vezes para o Fluminense. Em todas, o clube das Laranjeiras brigou para não cair até a última rodada. Um sinal de alerta após quatro tropeços consecutivos esse ano.

Diante da sequência ruim, o jogo de volta pela competição continental ganhou um peso extra e o Flu precisa reagir imediatamente para seguir vivo em um momento chave da temporada.

"Esperamos fazer desse o jogo da nossa vida, vale uma semifinal da Libertadores. Nos preocupam os quatro jogos sem vencer (no Brasileiro), com três competições sendo jogadas simultaneamente. É hora de reunir as energias, trabalhar para a gente estar muito bem emocionalmente para quinta. Temos uma equipe competitiva que joga no limite da sua capacidade. Temos oscilado no Brasileiro. Nas eliminatórias, nós amos competindo no limite das nossas capacidades", acrescentou o tricolor.

Roger conta com o apoio do presidente Mário Bittencourt e do diretor de futebol Paulo Angioni, mas dá sinais de cansaço diante do aumento das críticas jogo após jogo. A semana já começa agitada no Flu.

Fluminense