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

Pedir a cabeça de Tite é oportunismo: Brasil não tem geração para dar show

Tite consola Neymar após derrota da seleção brasileira para a Argentina na final da Copa América - Alexandre Schneider/Getty Images
Tite consola Neymar após derrota da seleção brasileira para a Argentina na final da Copa América Imagem: Alexandre Schneider/Getty Images

Colunista do UOL

11/07/2021 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

O Brasil vive uma incessante busca pelo futebol perfeito, pelo show de bola, por tabelas e dribles de tirar o fôlego. Mas a pergunta que fica é: será que temos uma geração para isso? Para mim, a resposta é não, e pedir a cabeça de Tite agora nada mais é do que oportunismo.

Sim, a seleção brasileira, por toda a sua tradição, precisa ter um nível de exigência lá em cima, mas é preciso entender a característica do elenco que o país oferece. É possível fazer melhor do que foi essa Copa América. E temos exemplos disso: a própria Copa América de 2019, quando Neymar não estava, ou a espetacular arrancada nas Eliminatórias da Copa de 2018.

Repito o que disse ontem. O Brasil tem jogadores excelentes, acima da média, que são titulares em quase todas as equipes do mundo. Eles formam um time extremamente competitivo, que consegue encarar de igual para igual qualquer outro rival, até mesmo os mais poderosos que têm sido alardeados pela Europa. Não há ninguém no momento que esteja "sobrando".

Mas não são atletas que vão dar show em campo. A estratégia da comissão técnica atual parece a correta: achar a melhor forma de fazer Neymar jogar bola. Ele é o único extraclasse que tem a seleção brasileira. Os outros tantos jogadores que deixaram o Brasil prometendo fazer coisas incríveis bateram e voltaram ou ainda estão por lá em busca do brilho.

Gabriel Barbosa deixou o Santos como a grande promessa, não foi aprovado na Inter de Milão e no Benfica e conseguiu recuperar o brilho no retorno ao país. Agora, conseguiu sequência na seleção e pouco fez. Vinicius Junior deixou o Brasil com a promessa de ser o novo Neymar. Está longe de conseguir até finalizar bem. Everton Cebolinha se destacou na Copa América de 2019 e no Grêmio, mas agora mal consegue sequência no Benfica.

Nas laterais, Danilo, Alex Sandro, Renan Lodi e Emerson são considerados bons jogadores para o nível do futebol europeu, mas ainda estão longe do que já vivemos no ado não tão recente com Daniel Alves e Filipe Luís.

No meio, há jogadores "formiguinhas" que "têm rodinhas", mas que também não são brilhantes. E pior: não tem nenhuma identificação com o público brasileiro porque quase não jogaram por aqui, como é o caso de Fabinho, de Fred, ou até de Lucas Paquetá, que tem o carinho do flamenguista, mas que ainda sofre por ter ido muito mal no Milan.

Com uma geração bem parecida, Dunga caminhava para deixar a seleção até fora da Copa do Mundo. Tite assumiu, fez o torcedor voltar a ter gosto de torcer pela seleção e caiu no Mundial para a Bélgica em um jogo em que finalizou o triplo de vezes, mas viu o seu meio-campista fazer gol contra e o goleiro adversário ter atuação inspiradíssima.

Não significa que Tite tem um trabalho perfeito. Não significa que não há críticas ao trabalho. Não significa que não tem espaço para melhorar. A questão é que vale um ajuste de expectativa do que o povo coloca como ideal e do que realmente um time oferece. É questão de não misturar problemas gigantescos que estão fora de campo com a atuação do time.

A CBF tem milhares de problemas para resolver: casos de corrupção no ado, de assédio no presente, um calendário patético que prejudica seu próprio produto e seus clubes, que, não à toa, ensaiam a saída para uma liga independente. Não faz sentido a seleção cobrar empatia do seu povo e marcar amistosos em todos os lugares, menos na sua própria casa.

Os atletas têm problemas em entender as necessidades de seu próprio povo. Misturar essa sensação com o que se vê em campo é compreensível em uma primeira análise com mais emoção, mas não se sustenta muito tempo com um olhar mais técnico.