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

Com início perfeito, Abel faz Palmeiras "europeu" e revoluciona até treinos

Thiago Ferri

Do UOL, em São Paulo

15/11/2020 04h00

Abel Ferreira chamou os jogadores do Palmeiras para uma conversa antes do jogo contra o Fluminense. O técnico queria saber se os atletas aceitariam mudar a rotina e realizar um treino na manhã de ontem (14), algo mais comum na Europa do que no Brasil. A resposta foi positiva, o time venceu por 2 a 0 e se manteve com 100% de aproveitamento com o novo treinador.

"Eu tenho um diálogo direto, fiz uma pergunta. Sei que às vezes o brasileiro gosta de dormir até mais tarde. Perguntei à equipe, temos pouco tempo para treinar, mas podemos treinar de manhã. Senti na parte dos capitães falando que estavam aqui para aprender, melhorar. Quando você ouve isso, e eles aceitam de alma e coração, temos mais tempo de preparação. Hoje treinamos detalhes de bola parada, alguns posicionamentos que foram importantes no jogo. O dia de manhã, como treinador, dá muito mais jeito quando tem mente aberta. Diferente quando eu mando alguém fazer algo obrigado, ou quando faz porque quer. O rendimento é maior. Os jogadores estão sendo extraordinários", elogiou.

Abel Ferreira ainda nem sequer completou duas semanas no Brasil, mas tem encantado o Palmeiras pelo trabalho no dia a dia. Sempre municiado de dados de análise de desempenho e um cuidado grande com as partes tática, física e mental, o treinador venceu os quatro jogos desde que chegou, com sete gols a favor e nenhum contra.

A ideia de realizar um treino a mais no dia da partida é uma forma de driblar as dificuldades pelo desgaste. Com intervalos de no máximo três dias entre os confrontos, os atletas fazem mais regenerativo do que trabalho no campo. Zé Rafael, por exemplo, só pôde trabalhar na movimentação da manhã de sábado, já que estava tratando um entorse no tornozelo direito.

Com o desempenho que tem chamado a atenção, o português diz que os jogadores são mais importantes para a boa fase do que ele. Além de mais bem organizada, a postura em campo tem sido bem diferente dos jogos apáticos no fim da agem de Vanderlei Luxemburgo. Isto mesmo sofrendo seguidamente com desfalques — ontem foram 13.

"Fui muito bem recebido, não sei como era antes, sei o que é agora. Se há alguém que está ajudando, eles têm me ajudado mais do que eu ajudo eles. Eles aprendem muito rápido, são treinadores dentro de campo. Isto me agrada muito. Mais um jogo sem tomar gol e com muita qualidade individual. Queremos fazer o jogo mais coletivo, pensando as mesmas coisas ao mesmo tempo. É o que temos visto, não só pela forma como jogamos ofensivamente, mas ter a consistência e a disciplina em que todos defendem e todos atacam", completou.

Palmeiras