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

Reunião de madrugada e preleção curta: a reta final para estreia do Brasil

Tite, técnico da seleção brasileira, durante treino para a Copa do Mundo - Stefano Guidi/Getty Images
Tite, técnico da seleção brasileira, durante treino para a Copa do Mundo Imagem: Stefano Guidi/Getty Images

Do UOL, em Doha

24/11/2022 12h11

Classificação e Jogos

A seleção brasileira estreia hoje (24) na Copa do Mundo do Qatar, às 16h (de Brasília), contra a Sérvia. A partida acontece no estádio Lusail, que fica a mais ou menos 20 km de distância do hotel Westin, onde a delegação está hospedada em Doha. A saída da concentração está marcada para 13h45.

Antes da partida para o estádio, Tite reúne os 26 convocados e comissão técnica para a preleção, que é uma palestra comandada pelo técnico com apoio de material audiovisual para instruções finais ao elenco sobre o jogo. Esse encontro não dura mais do que 40 minutos, o que é uma novidade no comportamento do treinador da seleção.

Antigamente, Tite gostava de se alongar nesse papo com os jogadores. Mostrava muitos detalhes, fazia discursos fortes e longos e exibia material à exaustão. Com o tempo, o técnico notou que os jogadores ficavam cansados de estar sentados por uma hora ou mais e perdiam a atenção ao longo da preleção. Daí a decisão de diminuir o tempo reunido e distribuir as informações ao longo do tempo anterior à partida.

Um dos conteúdos a que os jogadores têm o antes dos jogos é gerado por uma reunião entre todos os membros da comissão técnica, que acontece entre a noite e a madrugada anteriores. No quarto de hotel de algum membro do estafe, todos se reúnem. Tite vai só no comecinho, diz algumas instruções ou recomendações e vai embora para o seu quarto.

Membros da comissão técnica da seleção brasileira na concentração em Doha antes da estreia na Copa - Reprodução / CBF - Reprodução / CBF
Membros da comissão técnica da seleção brasileira na concentração em Doha antes da estreia na Copa
Imagem: Reprodução / CBF

Depois, madrugada adentro, o trabalho fica nas mãos dos auxiliares Cleber Xavier, César Sampaio e Matheus Bachi e dos analistas de desempenho Bruno Baquete, Thomaz Araújo, Raony Thadeu e Lucas de Oliveira. Eles observam detalhes finais sobre os adversários e sobre o próprio time e distribuem conteúdo para o WhatsApp de cada jogador que precisa se atentar a um detalhe do jogo. Por exemplo: os zagueiros recebem vídeos curtos e editados sobre movimentações dos atacantes, um último lembrete do que foi trabalhado nos treinos da semana.

Já os jogadores ficam recolhidos em seus quartos durante todo esse tempo, só saem para refeições (que têm horário pré-marcado), preleção e saída. Um dos atempos favoritos é o jogo Call of Duty, especialmente Modern Warfare II e Warzone 2.0, os dois games mais recentes da franquia.

Na volta da estreia na Copa do Mundo, haverá um jantar com a presença de familiares e convidados dos jogadores em um salão do hotel Westin.