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

OPINIÃO

Renato: Vaga para técnico da seleção pode cair no colo de Luis Enrique

Do UOL, em São Paulo

03/02/2023 10h47

A CBF continua na busca por um novo treinador para a seleção brasileira. A Coluna do PVC publicou hoje sobre os quatro favoritos para assumir o cargo: Carlo Ancelotti, José Mourinho, Luis Enrique e Jorge Jesus.

O Posse de Bola analisou esses quatro nomes. Para Renato Mauricio Prado, dificilmente Ancelotti ou Mourinho aceitariam comandar a seleção brasileira por conta de questões financeiras. Segundo o colunista, o nome ideal para o posto é Abel Ferreira, técnico do Palmeiras.

"Tenho a sensação de que está mais para cair no colo do Luis Enrique do que no do Jorge Jesus. Entre esses quatro aí, acho que o Jorge Jesus seria a última opção do Ednaldo. Mas em compensação, Ancelotti e Mourinho, que são sonhos mais vívidos do presidente da CBF, não vão aceitar. A diferença de grana é gigantesca", disse Renato Mauricio Prado.

"Mas o estrangeiro que deveria dirigir a seleção está entre nós. Chama-se Abel Ferreira. Esse é o nome correto para dirigir a seleção brasileira", ponderou o colunista.

Torcedor do Real tem que se preocupar

"Pronto ninguém está em começo de temporada. Mas se for comparar prontidões e situações de momento, eu, se torcesse pelo Real Madrid, estaria mais preocupado que em sendo torcedor do Flamengo", disse Juca Kfouri.

Esperança do Flamengo está nas qualidades individuais

"O time que vai disputar o Mundial pode se dar ao luxo de ter 60 dias de férias como o Flamengo teve? É óbvio que não. O maior problema do Flamengo não é o Vítor Pereira, é a preparação. O time não está bem preparado fisicamente", disse Renato Mauricio Prado.

O grande desafio é a semifinal do Mundial

"Vai depender muito do talento e da cabeça fria dos jogadores, de poucos erros. É um jogo de detalhes e acho que esse é o grande desafio do Flamengo, é a semifinal do Mundial, não é nem a decisão", afirmou Arnaldo Ribeiro.

Ceni não pode reclamar que falta jogador

"Agora acho que a responsabilidade é toda dele (Rogério Ceni). Falei esse negócio de precisar de um zagueiro porque, de fato, falta um porque machucou o titular. Mas não dá mais. 'Está faltando jogador': essa desculpa não cola mais", disse Arnaldo Ribeiro.

Críticas a Abel não ofuscaram conquista da Supercopa

"Não é verdade que o piti dele suplantou os elogios ao Palmeiras. Todo mundo elogiou o Palmeiras, todo mundo elogiou a qualidade do jogo, todo mundo disse que o segundo tempo foi espetacular", disse Juca Kfouri.

Wallace jogou o currículo no lixo

"O ratão de bronze dessa vez é unânime. Para um medalhista de ouro olímpico. Uma pena que esse rapaz Wallace tenha jogado definitivamente o currículo dele no lixo", afirmou Juca Kfouri.

Confira o programa na íntegra