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

Pole Position

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Após duas tentativas, F1 já estuda rever formato de minicorrida aos sábados

Valteri Bottas na liderança do sprint do GP de Monza - ANDREJ ISAKOVIC / AFP
Valteri Bottas na liderança do sprint do GP de Monza Imagem: ANDREJ ISAKOVIC / AFP

Colunista do UOL

15/09/2021 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Depois de dois GPs em que uma corrida curta definiu o grid de largada —em Silverstone, em julho, e em Monza, no último final de semana—, a Fórmula 1 já está estudando o que pode tornar o novo formato de sprint mais atraente para a próxima temporada. A grande queixa é a falta de movimentação da corrida do sábado, que acabou tendo menos ação do que se esperava na Itália.

No formato atual, uma classificação tradicional é feita na sexta-feira definindo as posições de largada para o sprint, no sábado. E a corrida de meia hora serve para determinar o grid do GP no domingo. A ideia é que esse formato seja usado apenas em algumas etapas no ano, prioritariamente em pistas nas quais as ultraagens não são tão difíceis. E, depois dos testes em Silverstone e Monza, a próxima prova a receber o sprint será o GP de São Paulo, em novembro.

Em Monza, o diretor de prova, Michael Masi, disse que é possível que ajustes sejam feitos já para a etapa de Interlagos, dependendo da avaliação da Federação Internacional de Automobilismo em conjunto com a chefia da F1.

"Vamos colher os dados nos próximos dias. Mas ter algo significativo na sexta-feira, como a classificação, é algo positivo. E, em relação à sprint, vamos dar uma olhada. Vi vários comentários sobre a falta de ultraagens. Mas é fato que ela serviu para misturar um pouco o grid para o GP", lembrou o australiano, referindo-se ao fato de os favoritos da Mercedes não terem fechado a primeira fila em Monza após a sprint, em um GP que teve a vitória de Daniel Ricciardo, da McLaren.

Na avaliação dos pilotos, uma corrida de 18 voltas (usando o exemplo de Monza, uma vez que o número de voltas varia, tendo como limite 100km de duração, ou seja, um terço de um GP normal) acaba não sendo suficiente para que oportunidades de ultraagem sejam geradas, pois elas dependem muito do desgaste de pneus. E eles também não se sentem estimulados a correr muitos riscos, temendo perder posições no grid da corrida principal.

"Minha sensação é de que a corrida é curta demais, então, todos estão pilotando sem poupar nada e isso não dá muita oportunidade de se ultraar. Normalmente, vemos ultraagens quando o desgaste entre o pneu de um e outro é diferente. Mas uma corrida de 100km não gera essa oportunidade", disse o piloto da Williams George Russell, que sugeriu uma mudança: obrigar todos a usarem os compostos mais macios, que se desgastam mais, na prova curta.

bottas - Reprodução/F1TV - Reprodução/F1TV
Valtteri Bottas, com a medalha que conquistou pela vitória na minicorrida de Monza, neste sábado
Imagem: Reprodução/F1TV

Mas a F1 está estudando uma solução diferente, provavelmente para o ano que vem: tornar a sprint independente da corrida principal, ou seja, os pilotos levariam mais pontos pela prova rápida do sábado, e ela não serviria para formar o grid do domingo.

"Nós sabemos que às vezes temos corridas boas, às vezes não", ponderou o diretor técnico da F1, Ross Brawn. "Talvez a sprint seja fantástica no Brasil e queremos julgar o formato depois de três corridas. Mas há provavelmente um elemento neste evento: os pilotos assumem menos riscos porque querem se manter na prova."

A mudança no formato sprint ainda precisa ser totalmente preparada. Mas a ideia inicial é usar a classificação da sexta-feira para definir ambos os grids. O certo é que a F1 não desistirá desse formato de uma hora para a outra, pois foram mais de dois anos de negociação, no que começou como uma proposta de corrida com grid invertido, até que a categoria conseguisse convencer as equipes a fazerem o teste em três etapas neste ano.

A avaliação é que as sprints adicionam ação de pista à sexta-feira, que geralmente fica limitada a treinos livres, e é uma forma de testar a diminuição do tempo total das corridas, buscando alinhar a F1 a um público mais jovem. De fato, mesmo que a sprint do sábado não tenha sido das mais emocionantes, foi observado um aumento no número de espectadores nas plataformas digitais da categoria.

A próxima corrida da Fórmula 1, voltando ao formato normal, será na Rússia, dia 26 de setembro. Com dois pontos que conquistou no sábado, Max Verstappen ampliou sua vantagem na liderança do campeonato para cinco pontos em relação ao rival Lewis Hamilton.