《高性能Javascript》读书笔记-3
第三章
DOM编程
把dom和js 各自想象为一个岛,他们之间用收费的桥梁链接,每次访问dom都必须途径这座桥收取过路费,访问次数多费用就高了。所有必须减少来往次数。
innerHtml 与dom比较:
对性能有着苛刻要求 更新一大片Html 推荐 innnerhtml
节点克隆:
element.cloneNode() 代替 document.createElement();
昂贵的集合
读取一个集合length 比读取一个普通数组的length要慢很多,因为每次都要去查询。
ie 和 hover:性能当创建一个5列和500~1000行表格,并使用hover改变背景高亮显示所在行, 移动上去,性能降低 高亮过程变慢,cpu使用率提高80%~90%;
2016-9-31更新:
在相同的情况下,遍历一个数组的速度明显快与 遍历html集合
在for循环每次迭代过程中,读取元素集合的length属性会引起集合进行更新;产生性能问题
解决就是 用局部变量保存 length长度
childnodes表示元素的集合
在所有浏览器中 chiildren比 childnodes 要快 不会快太多 集合项目少 1.5到3倍吧