javascript性能提升——访问集合元素时使用局部变量
2014-02-28 09:56
459 查看
——authored by 李家优
一般来说,对于任何类型的DOM访问,当同一个DOM属性或方法需要多次访问时,最好使用一个局部变量缓存此成员。当遍历一个集合时,首要优化原则是把集合存储在局部变量中,并把length缓存在循环外部,然后,使用局部变量访问这些需要多次访问的元素。
下面的例子,在循环中访问每个元素的三个属性。最慢的版本每次要访问全局document,优化后的版本缓存了一个集合的引用,最快的版本把当期集合元素存储到一个变量。这三个版本都缓存了集合的length属性。
example:
一般来说,对于任何类型的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>
相关文章推荐
- javascript性能提升——巧用局部变量
- javascript性能提升——减少访问DOM的次数
- 使用Javascript操作DOM的一些方法--元素的访问/复制等
- javascript性能提升——合理使用if-else 和switch
- javascript性能提升——减少遍历集合的开销
- 减少访问DOM的次数提升javascript性能
- 在Java中使用迭代器访问集合元素
- 使用Linq求和方法Sum计算集合中多个元素和时应该注意的性能问题
- 高性能Javascript 用局部变量缓存集合元素
- 使用BULK COLLECT和FORALL来提升性能——《Oracle高效设计》学习笔记
- 使用AsyncDisplayKit提升UICollectionView和UITableView的滚动性能
- 使用自定义文件缓存提升ASP.NET项目性能
- java 访问集合元素的方法
- 使用JavaScript和MSXML对XML文档进行访问
- 使用异步servlet提升性能
- MySQL如何避免使用Linux的swap分区而提升读写性能
- 禁用访问时间记录,提升 Linux 硬盘访问性能
- Android性能提升之强引用、软引用、弱引用、虚引用使用
- DataRabbit 轻量的数据访问框架(13)--DataRabbit 3.0 ORM性能大幅度提升!