nghe sự kiện thụ động là một tiêu chuẩn web mới, tính năng mới vận chuyển trong Chrome 51 cung cấp một sự thúc đẩy tiềm năng lớn để di chuyển hiệu suất. Chrome Release Notes.
Nó cho phép nhà phát triển chọn tham gia hiệu suất cuộn tốt hơn bằng cách loại bỏ nhu cầu cuộn để chặn người nghe sự kiện chạm và bánh xe.
Vấn đề: Tất cả các trình duyệt hiện đại có một tính năng di chuyển ren cho phép di chuyển để chạy trơn tru ngay cả khi đắt Javascript đang chạy, nhưng tối ưu hóa này là một phần đánh bại bởi sự cần thiết phải chờ đợi kết quả của bất kỳ touchstart
và touchmove
xử lý, có thể ngăn hoàn toàn việc cuộn bằng cách gọi số preventDefault()
trong sự kiện.
Giải pháp: - {thụ động: true}
Bằng cách đánh dấu một liên lạc hoặc bánh xe nghe như thụ động, nhà phát triển hứa hẹn xử lý sẽ không gọi preventDefault
để vô hiệu hóa cuộn. This frees the browser up to respond to scrolling immediately without waiting for JavaScript, thus ensuring a reliably smooth scrolling experience for the user
.
addEventListener(document, "touchstart", function(e) {
console.log(e.defaultPrevented); // will be false
e.preventDefault(); // does nothing since the listener is passive
console.log(e.defaultPrevented); // still false
}, Modernizr.passiveeventlisteners ? {passive: true} : false);
DOM Spec, Demo Video, Explainer Doc
Nguồn
2016-06-09 09:25:39
https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md – JedatKinports