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

Pulga atrás da orelha

Falcão, rei do futsal, revê carreira e agem pelo São Paulo. E avisa: se considera campeão da Libertadores

Thiago Tassi Colaboração para o UOL, em São Paulo Mike Hewitt - FIFA/FIFA via Getty Images

Falcão, o rei do futsal, é, provavelmente, o craque com a carreira mais curta e vitoriosa da história dos campos de futebol. Em pouco mais de três meses, o jogador estreou pelo São Paulo, fez sucesso com críticos e público e ganhou dois títulos — um deles, meses depois de seu retorno às quadras de futsal.

Essa história é de 2005, quando o São Paulo conquistou o Campeonato Paulista e a Copa Libertadores pela última vez. Falcão fez seis jogos pelo tricolor, apenas um como titular. No principal torneio sul-americano, esteve em campo por pouco mais de 15 minutos. Mesmo assim, foi a principal tentativa dele em uma modalidade que o tirava da zona de conforto. Apesar das poucas oportunidades, até hoje ele e os torcedores mantêm uma 'pulga atrás da orelha': será que dava?

Eu estava feliz de voltar para o futsal. E logo depois o São Paulo foi campeão da Libertadores, foi campeão mundial. Torci muito, peguei um carinho muito grande pelo clube, pela torcida. Até hoje tem essa 'pulga atrás da orelha', mas não me dava vontade [de seguir no futebol]. Estava muito bem resolvido e feliz de voltar às quadras, que é o que eu nasci para fazer.

Nesta reportagem do UOL Esporte, o rei do futsal revisita sua carreira de 104 títulos e analisa a agem pelo time do Morumbi, um plano ousado colocado em prática logo depois de ser eleito o melhor do mundo das quadras —ele abriu mão do status e de quatro patrocínios oriundos do prêmio máximo de 2004 para atuar nos gramados.

O craque poderia ter sequência maior no futebol, mas resolveu que não era para ele. Até hoje, não se arrepende. Há um ano e meio aposentado, Falcão tem agenda lotada, usa parte do tempo para brincar no YouTube e está feliz. Até recusou um convite para voltar a jogar.

Mike Hewitt - FIFA/FIFA via Getty Images

Assista à entrevista

Fernando Santos/Folha Imagem

Projeto São Paulo "começou errado"

Falcão chegou ao Morumbi no começo de 2005. Fez a pré-temporada e teve a primeira oportunidade em 20 de janeiro, contra o Ituano, pelo Campeonato Paulista. Ele substituiu Diego Tardelli aos 37 minutos do segundo tempo e foi bem. Primeiro, deixou Grafite na cara do gol com um lançamento preciso. Depois, fez tabela com e de letra e finalizou com perigo. O goleiro espalmou. Pronto, expectativa lá em cima.

"O que era para ser ruim aumentou a expectativa ainda mais. E qual é a sequência natural disso? Jogou dez minutos? Próximo jogo vai jogar 15. É normal que qualquer treinador faça isso. No dia seguinte, todos os programas esportivos do Brasil e do mundo dando uma repercussão muito grande e aquela expectativa: 'Falcão vai ser titular no próximo jogo? Não vai ser titular? Vai jogar mais, vai jogar menos?'. No próximo jogo, o que aconteceu? Fui cortado."

De acordo com o craque, o projeto "começou errado" e nunca evoluiu. Falcão foi a campo dias após a apresentação do elenco, quando a ideia inicial era de só treinar por um mês. O teste terminou em 18 de abril, no dia seguinte à única vez em que o camisa 12 foi titular. Ele iniciou a partida protocolar de um São Paulo já campeão paulista contra o Mogi Mirim. Perdeu dois gols e saiu no intervalo. Em pouco mais de três meses, acabou a aventura sem que ele tivesse, de fato, uma sequência sob o comando de Emerson Leão. Em 21 jogos, participou apenas de seis. A maioria entrando nos minutos finais.

"Quando eu fechei com o São Paulo, eu fechei com o presidente. E o presidente fechou comigo sem ter avisado o treinador. Se eu sou o treinador, eu também ia ficar chateado porque, pô, eu sou o treinador e vai me empurrar um jogador? Então acho que começou errado. E ainda mais sendo o Leão. O Leão tem essa coisa, 'ou por cima de mim'. (...) Tem algum momento que vira essa página, sabe? E nunca teve isso."

Minha cabeça começou a inverter. 'Pô, para que eu tô aqui ando por isso".

Ler mais
Divulgação CNN Brasil / Spokesman

Reinaldo Gottino: "Datena é meu amigo, mas somos bem diferentes".

Ler mais
Zo Guimaraes/UOL

Américo Faria conta como a seleção lidou com a convulsão de Ronaldo.

Ler mais
Topo