javascript性能提升——访问集合元素时使用局部变量

本文介绍了如何通过缓存DOM元素来提升JavaScript性能。具体措施包括将频繁访问的DOM属性存储在局部变量中,以及在循环中提前缓存集合长度等。通过示例对比展示了不同优化手段的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说,对于任何类型的DOM访问,当同一个DOM属性或方法需要多次访问时,最好使用一个局部变量缓存此成员。当遍历一个集合时,首要优化原则是把集合存储在局部变量中,并把length缓存在循环外部,然后,使用局部变量访问这些需要多次访问的元素。

下面的例子,在循环中访问每个元素的三个属性。最慢的版本每次要访问全局document,优化后的版本缓存了一个集合的引用,最快的版本把当期集合元素存储到一个变量。这三个版本都缓存了集合的length属性。

example:

<script type="text/javascript">
// 较慢
function collectionGlobal() {
  var coll = document.getElementByTagName('div'),
      len =coll.length,
      name = '';
  for (var count = 0; count < len; count++) {
    name = document.getElementByTagName('div')[count].nodeName;
    name = document.getElementByTagName('div')[count].nodeType;
    name = document.getElementByTagName('div')[count].tagName;
  }
  return name; 
}
</script>

<script type="text/javascript">
// 较快
function collectionGlobal() {
  var coll = document.getElementByTagName('div'),
      len =coll.length,
      name = '';
  for (var count = 0; count < len; count++) {
    name = coll[count].nodeName;
    name = coll[count].nodeType;
    name = coll[count].tagName;
  }
  return name; 
}
</script

<script type="text/javascript">
// 最快
function collectionGlobal() {
  var coll = document.getElementByTagName('div'),
      len =coll.length,
      name = '',
      el = null;
  for (var count = 0; count < len; count++) {
    el = coll[count];
    name = el.nodeName;
    name = el.nodeType;
    name = el.tagName;
  }
  return name; 
}
</script>

延伸阅读


▶ Walkthrough007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值