Missed the action at the 2018 Chrome Dev Summit? Catch up with our playlist on the Google Chrome Developers channel on YouTube. Watch now.

Site usa detectores de evento passivos para melhorar o desempenho de rolagem

Por que a auditoria é importante

Definir a opção passive nos seus detectores de eventos touch e wheel pode melhorar o desempenho de rolagem.

Consulte Melhorar desempenho de rolagem com detectores de evento passivos para obter uma visão geral.

Consulte o Explainer na especificação do detector de evento para obter detalhes técnicos.

Como ser aprovado na auditoria

Adicione o sinalizador passive a todos os detectores de evento que o Lighthouse identificar. Em geral, você deve adicionar o sinalizador passive a todos os detectores de evento wheel, mousewheel, touchstart, e touchmove que não chamarem preventDefault().

Em navegadores compatíveis com detectores de evento passivos, marcar um detector como passive é tão simples como definir um sinalizador:

document.addEventListener('touchstart', onTouchStart, {passive: true});

Entretanto, em navegadores incompatíveis com detectores de evento passivos, o terceiro parâmetro é um booleano para indicar se o evento deve surgir ou capturar. Portanto, a sintaxe acima pode causar consequências inesperadas.

Consulte o polyfill em Detecção de recursos para saber como implementar detectores de evento passivos com segurança.

Como a auditoria é implementada

Esta seção explica como esta auditoria é implementada para que você possa compreender como a pontuação da auditoria é calculada.

O Lighthouse usa o seguinte algoritmo para sinalizar candidatos em potencial para detectores de evento passivos:

  1. Coletar todos os detectores de evento na página.
  2. Remover dos filtros detectores non-touch e non-wheel.
  3. Remover dos filtros detectores que chamem preventDefault().
  4. Remover dos filtros detectores originados de um host diferente do da página.

O Lighthouse remove dos filtros detectores de hosts diferentes porque você provavelmente não tem controle sobre esses scripts. Por causa disso, observe que a auditoria do Lighthouse não representa o desempenho de rolagem integral da sua página. Pode haver scripts de terceiros que prejudiquem o desempenho de rolagem da página, mas eles não são listados no relatório do Lighthouse.