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

OPINIÃO

Lavieri: 'Repetição de adversários na fase de grupos ajuda o Brasil'

Do UOL, em São Paulo (SP)

01/04/2022 16h45

Classificação e Jogos

Em evento realizado na cidade de Doha, no Catar, a FIFA sorteou os grupos da Copa do Mundo de 2022 nesta sexta-feira (1). Pela frente, o Brasil terá Sérvia, Suíça e Camarões. A estreia da seleção comandada por Tite será diante dos sérvios, no dia 24 de novembro, ainda sem horário definido. A divulgação deve ser feita em breve pela entidade.

Na Live do Danilo e do Vitão, transmitida pelo UOL Esporte nesta sexta-feira (1), os jornalistas Danilo Lavieri e Vitor Guedes debateram a respeito dos primeiros adversários do Brasil. Para Lavieri, reencontrar Suíça e Sérvia na primeira fase, assim como foi em 2018, será bom para Tite e seus jogadores.

"Esse grupo sorteado para 2022 é muito parecido com o que aconteceu em 2018, na Rússia. O Brasil vai ter Sérvia e Suíça de novo na primeira fase, sendo a única diferença a Costa Rica, que neste ano foi substituída por Camarões. É claro que de lá para cá tivemos algumas mudanças nos times, mas também sabemos que a seleção conta com um grande time de análise de adversários", começou dizendo Danilo Lavieri.

"O Brasil já tem uma parte do caminho estudado. Vai mudar um pouco? Vai, mas tem uma espinha dorsal que vai ser a mesma que teve em 2018. Isso já é fundamental e importante. Além disso, o Brasil também vai com um time parecido para essa Copa do Mundo. Vale lembrar que, contra a Suíça em 2018, foi 1 a 1, com gol do Philippe Coutinho. No 2 a 0 contra a Sérvia foram gols de Thiago Silva e Paulinho, sendo que o primeiro muito provavelmente vai de novo", completou o jornalista.

Logo depois, o jornalista ressaltou o fato do Brasil ter caído no Grupo G, o que vai dar mais tempo de preparação em relação aos times das demais chaves.

"Outro fator que ajudou o Brasil nesse sorteio foi o fato da seleção cair no Grupo G. A comissão técnica queria muito que o Brasil estreasse mais para frente e esse chaveamento permite que a estreia aconteça já entre as últimas seleções. Sendo assim, é possível que a seleção faça até um amistoso extra antes de entrar de vez no torneio".

"Tem muita gente questionando se o Brasil realmente deu sorte nesse sorteio. Para mim, deu sorte sim. Primeiro porque caiu nesse Grupo G, segundo porque fugiu da Alemanha, da Holanda e da Polônia, e terceiro porque se cada seleção confirmar seu favoritismo nas suas chaves, o Brasil só jogaria com França e Bélgica em uma eventual final", fechou o jornalista.

A próxima edição da Live do Danilo e do Vitão será na segunda-feira (4). Você pode acompanhar a live pelo Canal UOL, no app Placar UOL, na página do UOL Esporte ou no canal do UOL Esporte no Youtube.