Trình nghe sự kiện chạm và bánh xe rất hữu ích cho việc theo dõi lượt tương tác của người dùng và tạo trải nghiệm di chuyển tuỳ chỉnh, nhưng chúng cũng có thể làm chậm quá trình di chuyển trang. Hiện tại, các trình duyệt không thể biết liệu trình nghe sự kiện có ngăn hoạt động cuộn hay không, vì vậy, trình duyệt luôn đợi trình nghe hoàn tất quá trình thực thi trước khi cuộn trang. Trình nghe sự kiện thụ động giải quyết vấn đề này bằng cách cho phép bạn cho biết rằng trình nghe sự kiện sẽ không bao giờ ngăn hoạt động cuộn.
Khả năng tương thích với trình duyệt
Hầu hết các trình duyệt đều hỗ trợ trình nghe sự kiện thụ động. Xem phần Khả năng tương thích với trình duyệt
Cách kiểm tra trình nghe sự kiện thụ động của Lighthouse không thành công
Lighthouse gắn cờ những trình nghe sự kiện có thể làm chậm quá trình cuộn trang:

Lighthouse sử dụng quy trình sau đây để xác định những trình nghe sự kiện có thể ảnh hưởng đến hiệu suất cuộn:
- Thu thập tất cả trình nghe sự kiện trên trang.
- Lọc bỏ các trình nghe không phải là trình nghe cảm ứng và trình nghe bánh xe.
- Lọc ra những trình nghe gọi
preventDefault()
. - Lọc ra những trình nghe không phải của máy chủ lưu trữ trang.
Lighthouse lọc ra các trình nghe từ nhiều máy chủ lưu trữ vì có thể bạn không kiểm soát được các tập lệnh này. Có thể có những tập lệnh của bên thứ ba đang làm ảnh hưởng đến hiệu suất cuộn trang của bạn, nhưng những tập lệnh này không được liệt kê trong báo cáo Lighthouse.
Cách chuyển trình nghe sự kiện sang chế độ thụ động để cải thiện hiệu suất cuộn
Thêm cờ passive
vào mọi trình nghe sự kiện mà Lighthouse xác định được.
Nếu bạn chỉ hỗ trợ những trình duyệt có hỗ trợ trình nghe sự kiện thụ động, hãy thêm cờ này. Ví dụ:
document.addEventListener('touchstart', onTouchStart, {passive: true});
Nếu đang hỗ trợ các trình duyệt cũ không hỗ trợ trình nghe sự kiện thụ động, bạn sẽ cần sử dụng tính năng phát hiện hoặc một polyfill. Hãy xem phần Phát hiện tính năng trong tài liệu giải thích về Trình nghe sự kiện thụ động của WICG để biết thêm thông tin.