高性能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 一次,遍历数组一次),看情况而定.