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

Tite consultou Sampaoli, Luxemburgo e Abel para apostar em novatos

Do UOL, em São Paulo

16/08/2019 10h40

Tite anunciou na manhã de hoje (16) a lista de convocados da seleção brasileira para os amistosos de setembro, nos Estados Unidos, contra Colômbia e Peru. Quatro novidades chamaram a atenção: o goleiro Ivan, da Ponte Preta, o zagueiro Samir, da Udinese, o lateral-esquerdo Jorge, do Santos, e o atacante Bruno Henrique, do Flamengo. Escolhas que tiveram o auxílio de outros técnicos para que fossem consumadas pela comissão técnica canarinho.

O próprio Tite confessou ter buscado esse apoio. Por Samir, por exemplo, foi atrás de Jayme de Almeida e Vanderlei Luxemburgo: "Samir tem três temporadas em alto nível na Itália. Eu conversei com o Jayme, que foi o técnico dele no começo de Flamengo e foi campeão da Copa do Brasil e carioca. Conversei com Luxemburgo sobre virtudes, do lado humano, da qualidade técnica, velocidade, força... Todos os atributos que são importantes".

No caso do santista Jorge, Tite já havia trabalhado com ele na seleção brasileira, mas resolveu consultar Jorge Sampaoli, o comandante do Peixe, para pegar mais informações antes da convocação. O novo coordenador de seleções, Juninho Paulista, também falou com Paulo Autuori, que assumiu recentemente a diretoria de futebol do Santos. A ideia é ver como Jorge se sai nos amistosos para ver se é possível fazer planos com ele para o ciclo da Copa do Mundo de 2022.

Outro treinador ouvido por Tite nesse processo de convocação foi Abel Braga, que está sem clube após ter deixado o Flamengo no meio desta temporada. Abel referendou a visão que Tite já mantinha sobre Bruno Henrique, um atacante de muita versatilidade: "Ele vem se destacando, faz gol e faz assistência. O Abel, uma pessoa que tenho relação próxima, conseguiu dar essa continuidade a um homem que faz ponta, joga como homem-gol".

As referências por Ivan saíram da própria Confederação Brasileira de Futebol (CBF). O goleiro da Ponte Preta foi um dos destaques da conquista do Torneio de Toulon deste ano com a seleção olímpica e a comissão técnica principal sempre o deixou no radar. "Dentro da ótica de dar chance a jovens nos amistosos, não tem sentido de pegar três goleiros de alto nível. Ederson precisa de rodagem na seleção e vai jogar. Weverton faz grande campanha no Palmeiras e merece estar aqui. Aí vem um jovem para formação", explicou Tite.