2013-07-24 23 views
7

Tôi có một số <ul> có nhiều trẻ em (gần 3000 mục) và một số trong số <li> có nhiều cấp độ. Tôi đã đính kèm một người nghe sự kiện vào 'click' (tôi đang sử dụng jQuery) mà tôi sử dụng để chuyển đổi khả năng hiển thị của trẻ em của một <li>.Hiệu suất nghe sự kiện JavaScript cho hàng trăm thành phần DOM

Tôi tự hỏi làm thế nào có quá nhiều trình xử lý sự kiện ảnh hưởng đến hiệu suất. (Có ít nhất 1000!). Đây có phải là vấn đề lớn đối với hiệu suất không?

Tôi không thực sự thấy nhiều vấn đề về hiệu suất với các trình duyệt web mới hơn, nhưng IE8 có vẻ rất chậm. Có điên rồ vô trách nhiệm để chỉ đánh một người nghe sự kiện vào tất cả mọi thứ ?!

Trả lời

9

Câu trả lời là một whooping lớn . Có, nó sẽ ảnh hưởng đến hiệu suất. Đoàn đại biểu tổ chức sự kiện được xây dựng cho chính xác điều này. Thay vì ràng buộc người xử lý của bạn cho mỗi đơn li, hãy liên kết nó với phụ huynh của nó, ul. Bằng cách này, ul sẽ ủy quyền sự kiện click tới li.

$("ul").on("click", "li", function() { 
//your code 
}); 
+0

Tất nhiên! Chúc mừng cho điều này, rất hữu ích. –

+1

Sẽ hữu ích hơn nếu bạn có thể hỗ trợ điều này bằng các con số. Nói rằng "ảnh hưởng đến hiệu suất" không phải là hữu ích chút nào. Tất nhiên nó ảnh hưởng đến hiệu suất. Câu hỏi đặt ra là bao nhiêu –

Các vấn đề liên quan