;(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: Atuação do Gabigol foi ótima e foi uma sacada do Paulo Sousa

Do UOL, em São Paulo

23/05/2022 15h58

O técnico Paulo Sousa já recebeu diversas críticas desde que assumiu o Flamengo devido às experiências com diferentes jogadores, mas depois de uma semana conturbada, com uma crise interna envolvendo o goleiro Diego Alves, o treinador não se privou de experimentar na escalação e mandou o time a campo com uma formação mais ofensiva, usando Gabigol como um meio-campista.

No podcast Posse de Bola #230, Mauro Cezar Pereira afirma que é preciso relevar a reação de parte da torcida e avalia que a experiência com Gabigol mais recuado foi boa e pode ser apontada como uma boa sacada do treinador português.

"Você pega por exemplo, a atuação do Gabigol foi ótima, foi uma sacada do Paulo Sousa. Foi um dos jogos desde que chegou ao Flamengo em que ele mais tocou na bola, ele errou um e, 97,5% de acerto nos es e es difíceis, não foram es para o lado. Vários es buscando os companheiros em condições de dar sequência à jogada, o gol só sai por conta do ótimo e que ele dá para o Matheuzinho, em um raro momento em que o Goiás saiu", analisa.

O colunista do UOL lembra que o Goiás impôs dificuldades jogando fechado contra Atlético-MG e Palmeiras, dois apontados ao lado do Flamengo entre os principais favoritos do Brasileirão e o Flamengo conseguiu a vitória em uma semana difícil. Ele também rebate as reclamações pelo fato de o técnico ter encerrado a partida usando quatro volantes.

"Uma piada isso, o cara jogou com um volante e conseguiu reunir o Everton Ribeiro jogando mais recuado, o Gabigol como meio-campista, o melhor em campo. O Arrascaeta jogou, o Bruno Henrique jogou, o Pedro jogou, todo mundo jogou. O técnico colocou um time ultraofensivo e aí os malucos reclamam que terminou com quatro volantes", diz Mauro Cezar.

"Não basta vencer, tem que vencer e procurar jogar bem, mas há contextos que não podem ser ignorados, eu seria um completo maluco se ignorasse isso. O Flamengo teve uma semana de crise, uma crise absurda, gratuita, tendo como pivô um terceiro goleiro. (?) Em um outro cenário, com o Flamengo mais em paz, jogando, mais bem colocado no campeonato, eu acho que aí o comportamento deve ser outro. Nessa semana muito confusa, eu entendo, embora o Flamengo tenha que jogar mais. Claro que Paulo Sousa tem que fazer o time jogar mais, mas foi uma semana de sobrevivência", 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.