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

OPINIÃO

Milly: Flamengo tem histórico de demissões de treinadores muito antiéticas

Do UOL, em São Paulo

07/03/2023 09h47

O Flamengo vem de derrota em clássico contra o Vasco no último domingo. Com mais um revés e com três fracassos em torneios neste início de temporada, o técnico Vítor Pereira lida com pressão.

O UOL News Esporte avaliou a situação do treinador. A colunista Milly Lacombe ressaltou o histórico do clube de muitas trocas na função.

"Não sei se o Vítor Pereira fica se perder o estadual, por todas essas coisas. Se estiver mostrando evolução tem que ficar. Todo mundo diz que ele é bom treinador, mas ainda não mostrou isso no Brasil", disse Milly Lacombe.

"Flamengo tem um histórico recente de demissões muito antiéticas de treinadores. Demitiu assim o Rogério (Ceni), o Renato (Portaluppi), o Paulo Sousa. Todo mundo foi demitido assim, mas eles não estavam indo bem. Mas o Dorival estava muito bem e foi demitido na calada da noite, foi um negócio bizarro", adicionou a colunista. Dorival Jr não teve seu contrato renovado ao fim de 2022 por falta de interesse do clube.

Incêndio no Ninho é maior vergonha da história do Flamengo

"Perder a semifinal do Mundial não é vergonha nenhuma. O Flamengo só estava no Mundial porque ganhou a Libertadores. É orgulho. A maior vergonha da história do Flamengo é a tragédia do Ninho do Urubu", disse Milly Lacombe.

Advogados cogitam anular acordo com Flamengo

"As advogadas do Pablo Henrique e do Jorge Eduardo já cogitam anular os acordos celebrados na Justiça. Por que elas entendem que essa matéria traz elementos que o acordo naquele momento não estava baseado", disse Leo Burlá.

Protestos em frente ao Ninho

"No Brasil, muitas vezes a gente vê as pessoas falando 'Fulano comemorou título de estadual', como se fosse algo menor. Agora a gente vê 'A torcida protestou no estadual'", disse Thiago Arantes.

São Paulo tem tarefa difícil?

"Acho que todos os grandes vão ar, mas acho que o São Paulo corre mais riscos", disse Milly Lacombe. "Pega um time ajustadinho e não joga no Morumbi".

Lesões são 'fatalidade'?

"Tratar como fatalidade não ajuda o São Paulo. Acho que deveria ser tratado como 'o que está acontecendo aqui?'. Por que se você acreditar em fatalidade, sei lá, leva um padre para benzer", disse Milly Lacombe.

Neymar vai mesmo voltar mais forte?

"O número de lesões do Neymar não é equiparável a nenhum outro jogador de alto nível desses últimos dez anos. É desesperador para quem gosta do Neymar", disse Thiago Arantes.

Premier League ou Brasil: qual o caminho para Neymar?

"Vejo como um caminho interessante para o Neymar ir para o futebol inglês. O que não sei é se ele teria essa motivação, essa força interior", disse Thiago Arantes.

Confira o programa na íntegra

Flamengo