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

Klein: Após levar bronca de Abel, Wesley ganhou uma chance mas foi mal

Colaboração para o UOL, em Aracaju

09/05/2022 04h00

Wesley jogou mal e foi eleito o pior em campo no empate do Palmeiras por 1 a 1 contra o Fluminense, ontem (8) no Allianz Parque, pela 5ª rodada do Brasileirão. Na semana ada, o atacante de 23 anos havia levado uma bronca pública do técnico Abel Ferreira, mas ganhou uma chance como titular diante do Flu e não correspondeu. Logo depois que ele foi sacado de campo para a entrada de Gustavo Scarpa, Dudu abriu o placar, mas Cano deixou tudo igual no fim.

Na Live do Palmeiras, transmitido pelo UOL Esporte após os jogos do Verdão, os jornalistas Alicia Klein e Danilo Lavieri criticaram a atuação de Wesley contra o Fluminense. Segundo Klein, o atacante desperdiçou a chance que Abel lhe deu dias depois de ser cobrado publicamente. Contra o Fluminense, ele perdeu uma ótima chance do que seria o primeiro gol do Palestra, além de ter sido pouco produtivo pela ponta esquerda.

"Wesley esteve mal durante a maior parte do jogo, uma pena. Ele foi criticado após o jogo da Libertadores, Abel deu uma chance e ele não conseguiu aproveitar, inclusive o momento de virada do jogo é quando ele sai e o Scarpa entra, melhorou muito a criação do Palmeiras. Wesley poderia ter resolvido a parada, não esteve bem no jogo."

Lavieri lembrou que Abel Ferreira já foi criticado por torcedores palmeirenses por supostamente não gostar de trabalhar com jogadores da base. Na opinião do colunista do UOL, porém, o português tem dado oportunidades a Wesley e o atacante não tem correspondido a confiança (e as cobranças) do técnico.

"Wesley foi criticado pelo próprio Abel Ferreira pela falta de foco, não é uma questão de ser garoto, tem que aproveitar oportunidade. O Danilo está jogando porque dá retorno, o Patrick de Paula hoje nem é titular no Botafogo, o Renan a mesma coisa no Bragantino, então não é que o Abel não usa os garotos, mas eles têm que corresponder. Já vimos muitos torcedores questionar a relação dele com os garotos, mas nessa ele está mais certo do que errado", opinou Lavieri.

Não perca! A próxima edição da Live do Palmeiras será na quarta (11), logo após a partida contra o Juazeirense, pela Copa do Brasil. Você pode acompanhar a live pelo Canal UOL, no app Placar UOL, na página do Palmeiras no UOL Esporte ou no canal do UOL Esporte no Youtube.