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

Mauro Cezar: Palmeiras começou muito mal o Brasileiro, duas atuações fracas

Do UOL, em São Paulo

18/04/2022 16h29

O Palmeiras disputou duas partidas pelo Brasileirão e somou apenas um ponto diante de adversários que não estão entre aqueles que são apontados como candidatos ao título, com derrota em casa para o Ceará e o empate em Goiânia diante do Goiás, que só foi obtido já nos acréscimos, em um jogo com polêmica de arbitragem devido ao pedido de falta em Weverton no gol da equipe goiana.

No podcast Posse de Bola #220, Mauro Cezar Pereira afirma que independentemente das reclamações em relação à arbitragem, a realidade é que o Palmeiras começou jogando mal o Campeonato Brasileiro e considera que Abel Ferreira pode estar tendo dificuldades para mobilizar os jogadores como consegue fazer nos jogos de mata-mata.

"O Palmeiras não jogou bem contra o Goiás e não jogou bem contra o Ceará, o Palmeiras fez jogos ruins nessas duas partidas, não foram boas, e aí eu fico com a tese do André Rocha de que uma coisa é mobilizar o time para jogar mata-mata, todos contra nós, faz música e aquela coisa toda, o Abel é ótimo nisso, a outra é, Campeonato Brasileiro, todo jogo mantendo, você vai remando, tudo igual, 3 pontos", diz Mauro Cezar.

"O jogo de Brasileirão, salvo jogos especiais, como pode ser esse de quarta-feira contra o Flamengo para o Palmeiras, eles não têm essa pegada de todos contra nós, é tudo ou nada, é vida ou morte, porque é um campeonato diferente daqueles jogos eliminatórios grandes que tanto atraem o técnico", completa.

O jornalista afirma que logo voltarão os questionamentos ao nível do elenco do Palmeiras, mas ressalta que não se justifica que o time fique tão para trás na pontuação do Brasileirão como no ano ado, quando terminou a 18 pontos do campeão Atlético-MG.

"É possível que daqui a pouco já vão dizer que o Palmeiras não tem elenco para disputar o Brasileiro, que não consegue acompanhar e por isso vai sair fora. Mas o desafio do Abel Ferreira é fazer um Campeonato Brasileiro legal, ficou 18 pontos atrás do campeão Atlético-MG no ano ado", diz Mauro.

"O Palmeiras não tem time para ficar 18 pontos atrás, mas daqui a pouco já vai haver evidentemente a tropa de choque dizer que o elenco não é bom. O Palmeiras começou muito mal o Campeonato Brasileiro, duas atuações fracas independentemente dessa polêmica do gol do Goiás", 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, por exemplo, no Spotify, Apple Podcasts, Google Podcasts, Amazon Music e Youtube --neste último, também em vídeo. Outros podcasts do UOL estão disponíveis em uol.com.br/podcasts.