Работая над повышением производительности прогрессивных веб-приложений, я наткнулся на новую функцию, Passive Event Listeners
и мне трудно понять эту концепцию.
Что Passive Event Listeners
и зачем нужно иметь в наших проектах?
javascript
dom-events
event-listener
passive-event-listeners
Вивек Пратап Сингх
источник
источник
Ответы:
Это позволяет разработчикам включить более высокую производительность прокрутки, устраняя необходимость в прокрутке для блокировки прослушивателей событий касания и колесика.
Проблема: Все современные браузеры имеют функцию многопоточной прокрутки, позволяющую плавно выполнять прокрутку, даже когда выполняется дорогой JavaScript, но эта оптимизация частично побеждена необходимостью ждать результатов любых обработчиков
touchstart
иtouchmove
обработчиков, которые могут полностью запретить прокрутку путем вызоваpreventDefault()
на мероприятии.Решение:
{passive: true}
Отмечая слушателя касания или колеса как пассивного, разработчик обещает, что обработчик не будет вызывать,
preventDefault
чтобы отключить прокрутку.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 , демо-видео , документ объяснения
источник