Używanie detektorów pasywnych do poprawy działania przewijania

Detektory zdarzeń dotyku i kółka przydają się do śledzenia interakcji użytkowników i tworzenia niestandardowych działań związanych z przewijaniem, ale mogą też opóźniać przewijanie strony. Obecnie przeglądarki nie wiedzą, czy detektor zdarzeń zablokuje przewijanie, więc zawsze czekają na zakończenie działania detektora, zanim przewiną stronę. Pasywne detektory zdarzeń rozwiązują ten problem, umożliwiając wskazanie, że detektor zdarzeń nigdy nie zapobiega przewijaniu.

Zgodność z przeglądarką

Większość przeglądarek obsługuje pasywne detektory zdarzeń. Patrz Zgodność z przeglądarką

Co się dzieje, gdy kontrola pasywnego detektora zdarzeń w Lighthouse kończy się niepowodzeniem

Lighthouse oznacza detektory zdarzeń, które mogą opóźniać przewijanie strony:

Audyt Lighthouse pokazuje, że strona nie używa pasywnych detektorów zdarzeń, aby poprawić wydajność przewijania

Lighthouse korzysta z poniższego procesu do identyfikowania detektorów zdarzeń, które mogą wpływać na wydajność przewijania:

  1. Zbierz wszystkie detektory zdarzeń na stronie.
  2. Odfiltrowuj słuchaczy niedotykowych i niezależnych.
  3. Odfiltruj detektory, które wywołują metodę preventDefault().
  4. Odfiltruj detektory, które pochodzą z innego hosta niż strona.

Lighthouse odfiltrowuje detektory z różnych hostów, ponieważ prawdopodobnie nie masz kontroli nad tymi skryptami. Mogą występować skrypty zewnętrzne, które pogarszają szybkość przewijania strony, ale nie są one wymienione w raporcie Lighthouse.

Jak ustawić detektory zdarzeń jako pasywne, aby poprawić działanie przewijania

Dodaj flagę passive do każdego detektora zdarzeń zidentyfikowanego przez Lighthouse.

Jeśli używasz tylko przeglądarek, które obsługują pasywny detektor zdarzeń, dodaj odpowiednią flagę. Na przykład:

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

Jeśli masz starsze przeglądarki, które nie obsługują pasywnych detektorów zdarzeń, musisz użyć wykrywania funkcji lub kodu polyfill. Więcej informacji znajdziesz w sekcji Wykrywanie funkcji w dokumencie z objaśnieniem pasywnych detektorów zdarzeń WICG.

Zasoby