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

Podcast

Posse de Bola

Programa semanal de futebol com Juca Kfouri, Mauro Cezar Pereira, Arnaldo Ribeiro e Eduardo Tironi


Posse de Bola #95: Flamengo tritura o Grêmio; e a final Palmeiras x Santos

Do UOL, em São Paulo

29/01/2021 12h47

O Flamengo venceu o Grêmio por 4 a 2 com grande atuação de Gabigol e momentos do time de Rogério Ceni lembrando a equipe campeã em 2019 sob o comando de Jorge Jesus, ando a ser o principal perseguidor do líder Internacional na reta final do Campeonato Brasileiro, enquanto o Bahia venceu o Corinthians e deixou emboladas as disputas por vaga na Libertadores e contra o rebaixamento nos jogos que antecederam a final da Copa Libertadores, entre Palmeiras e Santos.

No podcast Posse de Bola #95, os jornalistas Arnaldo Ribeiro, Eduardo Tironi, Juca Kfouri e Mauro Cezar Pereira analisam a melhora do Flamengo, novas atitudes polêmicas de Renato Portaluppi, técnico do Grêmio, a forma como Gabigol voltou a ser decisivo no ataque rubro-negro e o que esperar dos líderes na próxima rodada do Brasileirão.

Juca Kfouri elogia Gabigol e vê o Flamengo jogando um futebol que mostra condições de brigar pelo título, caso mantido na reta final. Ele também critica as declarações de Renato Portaluppi e vê o técnico se perdendo ao mesmo tempo em que deixa de explicar o baixo rendimento de seu time em jogos importantes.

"Eu quero me prender mais à belíssima exibição que o Flamengo deu no segundo tempo, principalmente o retorno como homo squadra do Gabigol, porque não foi apenas o maravilhoso gol que ele fez, mas o que ele participou do jogo, o que ele deu de opção para o ataque do Flamengo, as bolas que ou, enfim, a gente teve momentos de Flamengo", afirma Juca.

"Eu sei que está chato essa coisa de toda hora estar fazendo comparações, mas não há como não comparar, até pelo fato de o time ser praticamente o mesmo, com aquele Flamengo que nos encantou em 2019. Como eu estou muito interessado em ver de novo um grande time como foi aquele time, ter visto ontem ensaios daquele time no segundo tempo me agradou muito", completa.

Com o Flamengo voltando a ter um futebol que o credencia a brigar pelo título, Juca chama a atenção para o jogo difícil que tem o Internacional no domingo, diante do Red Bull Bragantino, time que é o vice-líder na classificação ao se considerar apenas o segundo turno.

"Vi o Flamengo no segundo tempo jogando futebol de quem ainda aspira ser campeão. Estou muito curioso por ver como é que vai transcorrer daqui para a frente esse campeonato que domingo tem um jogo imperdível, que é o jogo do líder com o Bragantino, que é um jogo arriscadíssimo para o Colorado, dada a bola que está jogando o Bragantino", afirma Juca.

Já em relação ao treinador do Grêmio, Juca afirma que ele está criando formas de evitar falar sobre o fato de seu time não vencer os confrontos entre os primeiros colocados, além de empatar 15 vezes até agora, sendo o time com mais igualdades na competição, motivo pelo qual chama Renato de 'Empataluppi'.

"Eu prefiro falar do Flamengo do que falar de Renato Empataluppi. Ele tem é que explicar como é que em 32 jogos o time dele empatou 15 vezes e ele não ganha de ninguém do G6. Isso que ele tem que explicar. O resto, que ele discutiu com o presidente, que ele queria pôr os garotos, o time de transição, realmente já deu, cansou, perdeu a graça completamente. Entrou para o folclore. Se ele quer ser folclórico, que seja folclórico", conclui.

Posse de Bola: Quando e onde ouvir?

A gravação do Posse de Bola está marcada para segundas e sextas-feiras às 9h, sempre com transmissão ao vivo pela home do UOL ou nos perfis do UOL Esporte nas redes sociais (YouTube, Facebook e Twitter). A partir de meio-dia, o Posse de Bola estará disponível nos principais agregadores de podcasts.

Você pode ouvir o Posse de Bola em seu tocador favorito, quando quiser e na hora que quiser. O Posse de Bola está disponível no Spotify e na Apple Podcasts, no Google Podcasts e no Castbox . Basta buscar o nome do programa e dar play no episódio desejado. No caso do Posse de Bola, é possível ainda ouvir via página oficial do UOL e YouTube do UOL. Outros podcasts do UOL estão disponíveis em uol.com.br/podcasts.