Pracując nad zwiększeniem wydajności progresywnych aplikacji internetowych, natknąłem się na nową funkcję Passive Event Listeners
i trudno mi zrozumieć tę koncepcję.
Jakie są Passive Event Listeners
i jakie są potrzeby, aby mieć to w naszych projektach?
javascript
dom-events
event-listener
passive-event-listeners
Vivek Pratap Singh
źródło
źródło
Odpowiedzi:
Umożliwia programistom wybranie lepszej wydajności przewijania, eliminując potrzebę przewijania w celu zablokowania słuchaczy zdarzeń za pomocą dotyku i kółka.
Problem: Wszystkie nowoczesne przeglądarki mają funkcję przewijania w wątkach, która umożliwia płynne przewijanie nawet wtedy, gdy działa kosztowny JavaScript, ale ta optymalizacja jest częściowo pokonana przez konieczność oczekiwania na wyniki któregokolwiek
touchstart
i programówtouchmove
obsługi, co może całkowicie uniemożliwić przewijanie, wywołującpreventDefault()
na wydarzeniu.Rozwiązanie:
{passive: true}
Oznaczając odbiornik dotyku lub kółka jako pasywny, programista obiecuje, że program obsługi nie będzie wywoływał funkcji
preventDefault
przewijania.This frees the browser up to respond to scrolling immediately without waiting for JavaScript, thus ensuring a reliably smooth scrolling experience for the user
.DOM Spec , Demo Video , Explainer Doc
źródło