在每次迭代过程中,读取元素集合length属性会引发集合进行更新,这在所有浏览器中都会有明显的性能问题。优化方法很简单,把集合的长度缓存到一个局部变量中,然后在循环的条件退出语句中使用该变量。
例如:
<!-- 优化前 -->
<script type="text/javascript">
function loopFeifeiDiv () {
var coll = document.getElementByTagName('div');
for (var count = 0; count < coll.length; count++) {
/*代码处理*/
};
}
</script>
<!-- 优化后 -->
<script type="text/javascript">
function loopFeifeiDiv () {
var coll = document.getElementByTagName('div'),
len = coll.length;//将长度用临时变量存储起来,避免每次去遍历集合
for (var count = 0; count < len; count++) {
/*代码处理*/
};
}
</script>