减少访问DOM的次数提升javascript性能

 更新时间:2014年02月24日 15:06:24   作者:  
访问修改DOM元素都会导致浏览器重新计算页面的几何变化,下面为大家介绍下javascript性能提升方法,需要的朋友可以参考下
访问DOM元素是有代价的,修改DOM元素则更为昂贵,因为它会导致浏览器重新计算页面的几何变化。

当然,最坏的情况是在循环中访问修改元素,尤其是对HTML元素集合循环操作。

例如:
复制代码 代码如下:

<!-- 优化前 -->
<script type="text/javascript">
function innerHTMLLoop () {
for(var count = 0; count < 15000; count++){
document.getElementById('here').innerHTML+='a';
}
}
</script>

这个函数循环修改页面元素的内容。这段代码的问题在于,每次循环迭代,该元素都被访问两次:一次读取innerHTML属性,另外一次重写它。

一个效率更高的做法是使用局部变量存储更新后的内容,然后在循环结束后一次性写入:
复制代码 代码如下:

<!-- 优化后 -->
<script type="text/javascript">
function innerHTMLLoop () {
var content = '';
for(var count = 0; count < 15000; count++){
content+='a';
}
document.getElementById('here').innerHTML+=content;
}
</script>

访问DOM的次数越多,代码运行速度越慢。因此,在有其他方案可以代替的时候,我们要尽量减少访问DOM的次数。

相关文章

  • layui+jquery支持IE8的表格分页方法

    layui+jquery支持IE8的表格分页方法

    今天小编就为大家分享一篇layui+jquery支持IE8的表格分页方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 微信小程序上传图片功能(附后端代码)

    微信小程序上传图片功能(附后端代码)

    这篇文章主要为大家详细介绍了微信小程序上传图片功能,还为大家分享了后端代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • javaScript合并对象的多种方式及知识扩展

    javaScript合并对象的多种方式及知识扩展

    众所周知JavaScript中有多种方法可以合并对象,下面这篇文章主要给大家介绍了关于javaScript合并对象的多种方式及知识扩展,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • js如何引入wasm文件

    js如何引入wasm文件

    这篇文章主要介绍了js如何引入wasm文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • ES6 Promise对象概念及用法实例详解

    ES6 Promise对象概念及用法实例详解

    这篇文章主要介绍了ES6 Promise对象概念及用法,结合实例形式详细分析了ES6中Promise对象的概念、原理、创建、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-10-10
  • 详解 Map 和 WeakMap 区别以及使用场景

    详解 Map 和 WeakMap 区别以及使用场景

    这篇文章主要介绍了详解 Map 和 WeakMap 区别以及使用场景,Map本质上是一个键值对的集合,WeakMap 只能将对象作为键名,下面来一起俩姐更多详细内容吧,希望这一篇文章能让你对 Map 有更好的理解,或者能够帮你理解 Map 和 WeakMap
    2022-01-01
  • javascript EXCEL 操作类代码

    javascript EXCEL 操作类代码

    有空把JAVASCRIPT对EXCEL的操作进行了封装,大家可以根据自己实际的需要在此基础上进行扩充。详细的请看代码
    2009-07-07
  • 写了个XML+Tree无穷树js版

    写了个XML+Tree无穷树js版

    写了个XML+Tree无穷树js版...
    2007-09-09
  • JavaScript中的值类型转换介绍

    JavaScript中的值类型转换介绍

    这篇文章主要介绍了JavaScript中的值类型转换介绍,本文讲解了值类型转换规则、值类型转换与比较、显式类型转换、对类型自动转换的使用等内容,需要的朋友可以参考下
    2014-12-12
  • arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)

    arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)

    这篇文章主要介绍了arcgis.js控制地图地体的显示范围超出区域自动弹回,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论