;(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 #83: Palmeiras x River, Cuca x Renato, Diniz x Sampaoli e Fla

Do UOL, em São Paulo

18/12/2020 12h53

A Libertadores teve a definição do confronto entre o Palmeiras e o atual vice-campeão River Plate em uma das semifinais, uma reedição do confronto da edição de 1999, ano do título palmeirense, depois de o time argentino ar com uma goleada acachapante pelo Nacional, em Montevidéu. Do outro lado da chave, o Santos ou pelo Grêmio com goleada e espera pelo vencedor de Racing e Boca Juniors na próxima semana.

O podcast Posse de Bola #83 analisa o confronto entre Palmeiras e River Plate, a classificação do Santos e pelo segundo ano seguido o Grêmio eliminado com goleada, além de abordar a disparada do São Paulo sobre o Atlético-MG após a vitória no confronto direto na última quarta-feira, com o Flamengo podendo assumir a vice-liderança caso vença o Bahia no domingo. O episódio também fala sobre a renovação de contrato de Diego Alves, o questionamento ao trabalho de Jorge Sampaoli e a eleição do polonês Lewandowski como melhor jogador do mundo.

Na análise do confronto entre Palmeiras e River Plate, Juca Kfouri aponta o favoritismo para o time argentino devido ao tempo de trabalho do técnico Marcelo Gallardo e a consistência na competição sul-americana nos últimos anos, sempre chegando entre os melhores, mesmo que sem a conquista do título, como no ano ado.

"Há um ligeiro favoritismo para o River Plate, é indiscutível, porque é mais cascudo, mais experiente em matéria de Libertadores, está aí em busca do quinto campeonato, o Palmeiras apenas em busca do segundo, tem o mesmo técnico há anos, um time entrosado", afirma Juca.

"Tem também o lado de que o segundo jogo é na casa verde, isso faz diferença, embora, tanto em Buenos Aires quanto em São Paulo, sem público, isso já diminui esta vantagem que o Palmeiras teria de fazer o segundo jogo em casa. Agora, o Palmeiras também está em um bom momento, mostrou isso de novo contra o Libertad, evidentemente, que não da para você comparar o Libertad com o Nacional em termos, não dá pela tradição, mas bola por bola também esse time do Nacional não chega a ser nenhuma Brastemp", completa.

O jornalista ressalta também que o Palmeiras teve um caminho mais tranquilo, mas também pelo fato de ter conseguido se impor diante dos adversários mais frágeis, principalmente quando jogou no Allianz Parque.

"O Palmeiras teve uma trajetória tranquila até aqui? Teve, mas reconheçamos, primeiro, se diz sempre que na Libertadores não tem jogo fácil, o Palmeiras fez dos seus jogos, principalmente em casa, jogos fáceis, as últimas três vezes fez 15 gols, ganhou os três jogos por 5 a 0, nas últimas três antes do jogo com o Libertad, fez 18 gols em casa nos últimos quatro jogos", diz Juca.

"Eu acho que o Gallardo está preocupado com esse jogo, não acha que sejam favas contadas, mas vejo isso, um pequeno favoritismo para o River Plate por estar mais montado, por ser mais cascudo, mais experiente, mas a vantagem é muito pequena, eu tenho certeza que serão semifinais sensacionais", conclui.

Mauro Cezar: River vai ser o grande desafio para o Palmeiras

Ainda sobre o confronto entre o Palmeiras e o River Plate, Mauro Cezar chama a atenção para que se desconsidere o confronto com o Athletico-PR, uma vez que o time argentino ainda estava retomando o ritmo de jogo e teve dificuldades para vencer, e destaca a qualidade do time de Gallardo tanto para atacar quanto para se defender. O jornalista projeta dois jogos interessantes e lamenta a falta de público nos estádios.

"O River ontem teve duas características que me chamaram a atenção, primeiro continuou criando situações, o Borré perdeu gols, poderia ter sido muito mais, então o time mostrou poderio ofensivo e é um time que toma poucos gols, embora tenha sofridos dois gols do Nacional até por um certo relaxamento e pelo que o jogo se apresentou, era 2 a 0 lá na Argentina e já estava 2 a 0 o jogo em Montevidéu, com um homem a mais, aí o time meio que afrouxou, mas é um time que não sofre muitos gols, se defende muito bem", analisa Mauro.

"O Palmeiras vai ter realmente um grande adversário pela frente, é claro que pode ar pelo River, mas esse vai ser o grande desafio para o Palmeiras. Os jogos vão ser só em janeiro, até lá muita coisa vai acontecer, o Palmeiras pode ter o Luiz Adriano de volta, pode ter jogadores que se recuperem fisicamente depois de um período maior pós-covid e no caso do River ele pode ter Enzo Perez, pode ter o Nacho Fernandez", 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.