Tôi đã thử tìm câu trả lời và tôi đã tìm thấy câu hỏi có liên quan và trong khi xác nhận kết quả của tôi (that one multiple selector call is slower than multiple single selector calls) không ai trong số họ cho tôi biết lý do.Nhiều bộ chọn so với hiệu suất chọn đơn
về cơ bản, khi bạn chạy mã này:
$("#one, #two").hide();
$("#one, #two").show();
Against mã này:
$("#one").hide();
$("#two").hide();
$("#one").show();
$("#two").show();
Rồi sau này sẽ nhanh hơn khoảng 50%.
Tuy nhiên, khi chúng tôi thêm bộ chọn thứ ba, chênh lệch hiệu suất sẽ nhanh hơn 39%.
Sự khác biệt của bộ chọn thứ tư: nhanh hơn 26%.
Thứ năm: nhanh hơn 30%.
Thứ sáu: nhanh hơn 31%.
Mười: 31% nhanh hơn.
(Do lưu ý các giá trị dường như dao động trong khoảng một biên độ 5%)
Vì vậy, chúng tôi nhận cái gì đó trông như thế này:
Việc thực hiện dường như rắc khoảng 6 selectors. Nó không bao giờ có vẻ để có được bất kỳ 'nhanh hơn' hơn là chậm hơn 31% so với làm mỗi một thông qua một cuộc gọi duy nhất. Tại sao vậy?
Cá nhân, tôi thích sử dụng nhiều bộ chọn cho mỗi cuộc gọi, nhưng dường như có một lần truy cập hiệu suất lớn (tương đối). Khi nào thì điều này (không) sẽ phù hợp để sử dụng?
Thú vị. Tôi đã luôn luôn giả định trường hợp đầu tiên (nhiều) sẽ nhanh hơn. Điều gì về bộ chọn lớp, hiệu suất tương tự? –
Đó cũng là giả định của tôi, vì vậy tôi đã rất ngạc nhiên bởi điều này. Tôi chưa kiểm tra bộ chọn lớp, nhưng nó đáng xem xét. Tôi sẽ chạy một số xét nghiệm sau. – Johannes
Tôi không chắc chắn về * tương đối lớn *. Nhanh hơn 50% sẽ không có ý nghĩa nhiều trong bức tranh lớn nếu mã tham chiếu đã chạy dưới một micro giây. –