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

"Invisível", lateral do Palmeiras explica como convenceu técnicos no clube

Marcos Rocha comemora seu gol pelo Palmeiras contra a U. Católica, pela Libertadores - Staff Images/CONMEBOL
Marcos Rocha comemora seu gol pelo Palmeiras contra a U. Católica, pela Libertadores Imagem: Staff Images/CONMEBOL

Diego Iwata Lima

De São Paulo

19/08/2021 04h00

É em silêncio e sem qualquer badalação que Marcos Rocha vai solidificando uma agem de números expressivos e, mais importante, momentos decisivos no Palmeiras. Desde sua chegada, em 2018, o camisa 2 convenceu todos os técnicos que o dirigiram —Róger, Felipão, Mano Menezes, Abel e os interinos Wesley e Andrey "Cebola"— de que merecia ser sempre titular da equipe. Mesmo brigando pela posição com jogadores mais jovens como Mayke e Gabriel Menino.

O motivo de tanto apreço? Marcos Rocha, muitas vezes invisível para parte da torcida, parece entender: "Às vezes, eu sei que não vou aparecer tanto para a torcida. Mas sei que minha parte tática e técnica estão ajudando o Palmeiras dentro de campo. E não tem nada mais gratificante do que a gente ver o resultado dessa dedicação", disse com exclusividade, ao UOL, o camisa 2 do Alviverde.

Rocha é um dos seis jogadores do atual elenco que disputaram as três finais da temporada 2020 —Paulista, Libertadores e Copa do Brasil. Também atuou na Recopa Sul-Americana, na Supercopa do Brasil e na semifinal do Mundial de Clubes. Só não esteve na final do Paulista deste ano porque se lesionou nas quartas de final, contra o Red Bull Bragantino, em 14 de maio, ficando fora de combate até 6 de junho.

Na maior parte dessas partidas, o lateral-direito foi bem. Em redes sociais e nas já ressurgentes conversas de amigos e rodas de bar, a expressão "Marcos Rocha cresce nos momentos decisivos" já se tornou uma frase recorrente, a despeito de seu futebol discreto. Na vitória por 3 a 0 contra o São Paulo, na terça (17), Rocha mais uma vez teve atuação muito correta e importante taticamente.

"O jogo de terça-feira foi muito especial. Jogar no Allianz Parque contra o São Paulo, onde os números são muito favoráveis, em um jogo decisivo, um clássico, mexe com a emoção dos torcedores. E nós conseguimos fazer um grande jogo e uma classificação impecável", completou o lateral. "Vamos embora, aguardar pelo próximo adversário para tentar chegar à tão sonhada final e buscar o bicampeonato pelo Palmeiras".

Com o resultado sobre o São Paulo, Rocha chegou à marca de 18 vitórias pelo Palmeiras na Libertadores, tendo sido decisivo em uma delas recentemente. Foi o dele o gol que deu a vitória por 1 a 0 sobre a Universidad Católica (CHI), que levou o time às quartas O número o coloca entre os dez jogadores com mais triunfos pelo Verdão no torneio. Com 28, Weverton lidera. Mas Rocha tem mais 24 vitórias pelo Atlético-MG, clube que o revelou e que ele vai enfrentar pela semifinal do torneio continental, totalizando 42.

Veterano entende que ainda está evoluindo

Aos 32 anos, Marcos Rocha está disputando sua nona Libertadores seguida —um recorde entre jogadores brasileiros. Apenas Danilo (São Paulo e Corinthians) e Jean (Palmeiras, São Paulo e Fluminense), com dez edições no currículo, mas com intervalos, têm números maiores. E mesmo com tanta rodagem, o veterano sente que está evoluindo como jogador, algo que os números ajudam a comprovar.

"Fico feliz pelos meus números. A cada ano, sinto evolução tática e isso me dá confiança para fazer meu desempenho. Vestindo a camisa e buscando resultados individuais, eu ajudo o coletivo a brigar por títulos e fazer boas campanhas", afirma.

A coleção é ampla. Rocha é o 3º jogador que mais desarmou nesta temporada, com 51, no Palmeiras. É também o 3º colocado em assistências na história do Allianz Parque, com 13. Somando o elenco completo, ocupa a quinta posição em es para gol, com 21. Em 2020, colocou os companheiros em condição de bater a gol 69 vezes.

Rocha tem contrato com o Palmeiras até o fim de 2022 e ainda não foi chamado pelo clube para discutir uma possível extensão do vínculo, expediente que o clube levou a cabo com seus jogadores mais jovens e com potencial para serem negociados. Estender o contrato pode não ser estrategicamente necessário no caso de Marcos Rocha, pensando-se no futuro. Mas se a discussão for travada no presente, a importância do camisa 2 é pouco contestável.