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

Seleção define rotina para rodada tripla com treinos no CT do Corinthians

Convocados por Tite se apresentam entre 30 e 31 de agosto e ficam 11 dias à disposição da seleção - Lucas Figueiredo/CBF
Convocados por Tite se apresentam entre 30 e 31 de agosto e ficam 11 dias à disposição da seleção Imagem: Lucas Figueiredo/CBF

Do UOL, em São Paulo

12/08/2021 19h06

ado pouco mais de um mês do vice-campeonato da Copa América, o técnico Tite convoca amanhã (13), às 11h, os 23 jogadores que estarão à disposição da seleção brasileira no começo de setembro para a rodada tripla das Eliminatórias para a Copa do Mundo do Qatar. A programação para o período de 11 dias foi divulgada hoje (12) e conta com treinamentos no CT do Corinthians e sem atividades na Granja Comary, em Teresópolis.

A comissão técnica se apresenta em São Paulo a partir do dia 29 de agosto, um domingo, e os jogadores são esperados ao longo dos dois dias seguintes, após a rodada do fim de semana dos torneios que disputam. Serão três sessões de treinamentos no CT Joaquim Grava até a viagem para Santiago, no Chile, na quarta-feira (1), no fim da tarde. O jogo contra os donos da casa é no dia seguinte, às 22h (de Brasília).

A delegação dorme no Chile entre quinta e sexta-feira, quando volta para o Brasil em voo fretado às 15h30. "Poderíamos voltar ao Brasil logo após a partida, mas optamos por priorizar uma boa recuperação aos atletas, com noite de sono completa e também alimentação correta. No domingo entraremos em campo e esta será uma medida importante neste aspecto regenerativo", disse o preparador físico Fábio Mahseredjian.

Os jogadores fazem um treinamento no sábado (4) e já no domingo entram em campo contra a Argentina, em jogo atrasado da sexta rodada. Os dois compromissos serão na Neo Química Arena, estádio do Corinthians. O clássico será às 16h.

Na segunda e na terça-feira, o grupo treina novamente no CT do Corinthians e neste segundo dia embarca para o Recife de noite. Haverá um treino na Arena Pernambuco na quarta-feira e, no dia seguinte, o jogo no mesmo local contra o Peru, já pela décima rodada, às 21h30. Depois disso todos os jogadores estão dispensados.

"Nosso grande desafio será individualizar as cargas de atividades com cada jogador para que estejam todos aptos para as três partidas. Nesse ponto, o trabalho regenerativo será fundamental durante este período", relata Mahseredjian, que mostrou preocupação sobre o estado físico de jogadores que estão em começo de temporada no futebol europeu: "Sabemos exatamente quantos minutos cada um teve em campo até aqui, além de fazermos uma projeção de quantas partidas cada um irá disputar até a data da apresentação."

A seleção brasileira tem 100% de aproveitamento nos seis primeiros jogos das Eliminatórias, com aproximadamente 70% da pontuação necessária para conquistar uma vaga na Copa do Mundo do Qatar em um terço dos jogos.