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

Palmeiras

Luxemburgo diz por que não usa Alan mesmo com meias em baixa no Palmeiras

Alan, do Palmeiras, durante treinamento na Academia de Futebol - Cesar Greco
Alan, do Palmeiras, durante treinamento na Academia de Futebol Imagem: Cesar Greco

Do UOL, em São Paulo

14/08/2020 18h49

Com o desempenho ruim dos meias do Palmeiras, os torcedores questionam com frequência a falta de chances para Alan. O armador de 20 anos de idade deixou uma boa impressão quando entrou nos duelos da Florida Cup, mas segue sem uma partida oficial em 2020. Segundo o técnico Vanderlei Luxemburgo, o garoto ainda não mostrou nos treinos que mereça de fato uma oportunidade.

"Se eu não coloquei, o menino ainda não mostrou para mim que merece ter uma oportunidade, ou então eu já tinha colocado. Quero colocar, mas ele tem que mostrar que merece a oportunidade no treinamento. Tem que matar um leão por dia. Tem que mostrar que joga bola para colocar. O Alanzinho é bom jogador, muito técnico, mas no treino precisa mostrar que eu preciso dar uma chance. Aí eu vou colocar. Se não fizer isso, não tenho como dar chance. Isto vale para todos os atletas", afirmou Luxa, à rádio 9 de Julho.

Raphael Veiga e Lucas Lima foram os meias que mais jogaram na temporada, mas nenhum deles se firmou, tanto que o Verdão conquistou o título paulista sem armadores. Gustavo Scarpa foi menos usado, e também está em baixa. Mesmo neste cenário, Alan muitas vezes nem é relacionado.

"Você trabalha a recuperação do jogador e ele precisa mostrar que pode continuar. Estou dando oportunidades, mas eu tinha de ganhar um título. Encontrei uma formação mais sólida, mais firme, e com as mudanças ao longo do jogador eu fui tornando a equipe mais agressiva, contra o adversário mais cansado", acrescentou.

Na entrevista, o técnico respondeu sobre a dificuldade para encontrar um esquema após a saída de Dudu. Além de principal jogador do Palmeiras nos últimos anos, o camisa 7 tinha um papel importante no esquema com quatro atacantes, usado antes da pausa do futebol por conta da pandemia do coronavírus.

"A mudança sem o Dudu não era o posicionamento dele, mas da equipe como um todo. Eu trabalhava antes da pandemia e fazia trabalhos táticos todo dia. Era físico, técnico e tático. A gente fazia o time entender nossa ideia com a linha mais alta, o perde e pressiona. Eu queria que ele (Dudu) fosse o quebrador de linhas. Com o Rony e o Veron, que estamos olhando com carinho, eu teria um jogador que quebra linhas", encerrou.

Campeão paulista, Vanderlei Luxemburgo agora prepara o Palmeiras para fazer o segundo jogo no Brasileiro, amanhã (15), às 21h30, contra o Goiás, no Allianz Parque. O Verdão vem do empate na estreia contra o Fluminense, no Maracanã.

Palmeiras