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

Corinthians

Corinthians: Vítor Pereira comanda tático no CT e convoca zagueiro da base

Vítor Pereira explica o treinamento aos jogadores do Corinthians  - Rodrigo Coca/ Ag. Corinthians
Vítor Pereira explica o treinamento aos jogadores do Corinthians Imagem: Rodrigo Coca/ Ag. Corinthians

Yago Rudá

Do UOL, em São Paulo

09/03/2022 19h56

O elenco do Corinthians realizou hoje (9) o primeiro treino tático de olho na partida do próximo sábado, contra a Ponte Preta, na Neo Química Arena. Desfalcado de seis atletas, o técnico Vítor Pereira chamou o zagueiro Robert Renan, convocado ontem para defender a seleção brasileira sub-19, para compor a atividade no CT Joaquim Grava.

A atividade em campo foi fechada à imprensa, que ainda não pôde assistir a nenhuma sessão de treinamento da nova comissão técnica sob o comando do Corinthians. Na nota de treino, o clube apenas informou que os atletas realizaram uma atividade tática projetando o confronto com a Macaca no fim de semana.

O lateral Fábio Santos, com dores na região lombar, não participou da atividade com bola. Além dele, Xavier (lesão muscular), Roni (dores no músculo posterior da coxa direita), Donelli (pancada na panturrilha direita), Jô (indisposição estomacal) e Ruan Oliveira (recuperação de cirurgia de reconstrução de ligamento) também não estiveram à disposição de Vítor Pereira.

Para minimizar as baixas, o português convocou o zagueiro Robert Renan, membro do elenco sub-20 do Corinthians, para treinar com os profissionais. O jovem jogador, de apenas 19 anos, foi convocado para defender a seleção brasileira de sua categoria, e está inscrito no Campeonato Paulista.

O elenco retorna aos treinamentos amanhã pela tarde no CT Joaquim Grava. No sábado, às 18h30 (de Brasília), mede forças com a Ponte Preta pela 11ª rodada do Campeonato Paulista. O Timão já está classificado para o mata-mata e apenas cumpre tabela na fase de grupos.

Corinthians