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

Danilo Lavieri

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Everton Ribeiro não merece convocação e reflete problema de Tite no Brasil

Everton Ribeiro pela seleção brasileira contra a Venezuela - Lucas Figueiredo/CBF
Everton Ribeiro pela seleção brasileira contra a Venezuela Imagem: Lucas Figueiredo/CBF

Colunista do UOL

14/05/2021 11h32

Receba os novos posts desta coluna no seu e-mail

Email inválido

A lista de Tite para os jogos contra Equador e Paraguai, pelas Eliminatórias da Copa do Mundo, não trouxe grandes surpresas em relação às últimas convocações. A principal questão é que Everton Ribeiro não tem conseguido jogar bem nem no Flamengo e não está no melhor momento para ser chamado para a seleção brasileira.

A ida dele, no entanto, reflete um problema antigo do treinador, que é a convocação de um meia de criação. Tite apostou por muito tempo em Philippe Coutinho, que não correspondeu aos chamados. A insistência com o meia do Barcelona rendeu críticas, e o treinador manteve a aposta por conta do que já tinha visto do atleta no ado.

A chamada de Everton Ribeiro parece repetir a mesma lógica. O flamenguista tem sido criticado rotineiramente por suas apresentações no time carioca e, mesmo assim, apareceu na lista unicamente por conta do que já mostrou em um ado não tão distante, inclusive com a amarelinha. Nas últimas vezes que foi convocado, ele foi extremamente elogiado pela comissão. No Ninho do Urubu, aliás, há quem atribua a queda de desempenho do meia por conta de sua convocação.

Outra polêmica também tem referência direta com o Flamengo: Gerson. O meio-campista já mostrou mais de uma vez que tem qualidade para ser convocado para a seleção principal. Há uma tese que o jogador não é convocado por conta da recusa para disputar o Pré-Olímpico em janeiro do ano ado, o que Tite nega. Mas não chamá-lo mais uma vez, ainda mais com Douglas Luiz suspenso da primeira partida, abre espaço para quem acredita nessa teoria, mesmo que ela tenha sido convocado mais tarde por André Jardine. O lugar dele é na principal.

Fred, do Manchester United, voltou à lista após ser constantemente elogiado pelo seu desempenho na Premier League, e Lucas Paquetá continua entre os lembrados por conta do que mostra no Lyon.

No restante da lista, Lucas Veríssimo já merecia uma chance pelo que havia mostrado no Santos, e Daniel Alves, convocado novamente, ainda é o melhor lateral direito disponível para a seleção brasileira, apesar da idade e dúvida se ele chega em condições para a Copa de 2022. A mesma lógica se repete com Thiago Silva, que também vive um excelente momento no Chelsea. Gabriel Barbosa é jovem, mas também vive excelente fase e merece ser testado novamente.