高性能Javascript HTML集合访问的学习笔记
HTML集合是包含了DOM節點引用的類數組對象。
document.getElementsByTagName();
document.images ? document.links document.forms ? document.forms[0].elements
HTML集合有length,有索引,但不是真正的數組 ? ?沒有push 或slice之類的方法 ? ??
HTML集合處于一種“實時狀態” 實時存在,這意味著底層文檔對象更新時,它也會自動更新,HTML集合與文檔一直保持連接,每次你需要更新信息時,都命運 重復執行查詢的過程,這下是低效之源
昂貴的集合
緩存數組長度 ?\
for(var i=0,len = coll.length;i<len;i++) {
}
更有將集合轉化為數組
function toArr(coll) {
?? ?for(var i = 0, a = []; len = coll.length; i < len; i++) {
?? ? ? ? a[i] = coll[i];
?? ?}
?? ?return a;
}
這個寫法比較好,for的第一項可用于創建變量, ? ? ? ?
但用此法也不一定好,因為它要兩次循環(toArr ?一次,遍歷數組一次),看情況而定. ? ? ??
轉載于:https://www.cnblogs.com/yushunwu/archive/2011/09/15/2178081.html
總結
以上是生活随笔為你收集整理的高性能Javascript HTML集合访问的学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Const指针的一点补充
- 下一篇: 浏览器对象模型(BOM)