document.getElementsByTagName('a').item(0)
list.item (0) vs danh sách [0]
và
document.getElementsByTagName('a')[0]
sẽ trả lại kết quả tương tự ...
Là cựu nhanh hơn sau này?
document.getElementsByTagName('a').item(0)
list.item (0) vs danh sách [0]
và
document.getElementsByTagName('a')[0]
sẽ trả lại kết quả tương tự ...
Là cựu nhanh hơn sau này?
Kiểm tra hiệu suất tự thực hiện: http://jsfiddle.net/438jh/2/
Sự khác biệt có vẻ không đáng kể. Phương pháp thứ hai thực hiện tốt hơn trong hầu hết trường hợp, nhưng nếu bạn có một cái nhìn về mức độ thường xuyên của vòng lặp được thực hiện nó không thực sự quan trọng.
Chrome:
Thử jsFiddle của bạn trong Firefox 3.6.6, tôi nhận được khoảng 250 cho phương thức đầu tiên và 475 cho phương thức thứ hai. –
kết quả trong ie8: test1: 5000+ test2: ~ 2000. Tôi thậm chí phải đấm "không" khi IE yêu cầu tôi ngừng chạy tập lệnh trong khi thử nghiệm 2 và nó vẫn nhanh hơn đáng kể. – lincolnk
@Daniel: trong Firefox 3.6.8. Tôi nhận được ~ 640 và ~ 460 .... –
chức năng mục là thành viên của NodeList
đối tượng DOM. NodeLists
giống như mảng nhưng chúng không phải là mảng thực (ví dụ: chúng là trực tiếp, chỉ đọc, thiếu các hàm mảng).
Sự khác biệt hiệu suất sẽ không đáng kể.
Yeap, tôi đọc bài này trước khi đăng ... http://www.nczonline.net/blog/2010/09/28/why-is-getelementsbytagname-faster-that- queryselectorall/ – xandercoded
tôi khuyên bạn nên tập trung vào các tối ưu hóa quan trọng hơn. – galambalazs
Để biết ví dụ thực tế hơn, kỹ thuật này có hiệu suất tốt nhất. Nhìn vào công việc của Nicholas Zakas, YAHOO! để biết thêm ví dụ:
var cachedDOMquery = Array.prototype.slice.apply(document.getElementsByTagName('a')),
i = cachedDOMquery.length,
item;
while(i--){
item = cachedDOMquery[i];
alert(item.href);
}
Đó không phải là mảng. – SLaks
Không có kết quả, nó sẽ không mater. Nếu bạn đang sử dụng Javascript (trên một trình duyệt Web) cho hiệu suất bạn đang sử dụng ngôn ngữ sai. Bạn nên tập trung vào việc xem xét khác, chẳng hạn như khả năng đọc. – HoLyVieR
@HoLyVieR chỉ là một câu hỏi được tạo ra bởi một bài đăng trên blog. Tôi muốn tìm sự khác biệt là tối thiểu. – xandercoded