« 上一篇下一篇 »

JavaScript提速的方法

JavaScript执行速度取决于代码的编写方式,本文就主要介绍几种实现JavaScript提速的方法

    1、管理作用域非常重要,因为存取非局部变量要比局部变量耗时更多。尽量避免使用会增长作用域链的结构,比如使用with语句和try-catch语句中的catch从句。如果非局部变量的使用超过一次,那么为了降低性能耗损,就应该将它存储到一个局部变量中。

    2、存储和读取数据的方式对脚本性能影响极大。字面量和局部变量总是最快的;存取数组元素和对象属性会引起性能损耗。如果数组元素或对象属性的使用超过一次,那么为了提高存取速度,就应该将它存储到一个局部变量中。

    3、流控制也是影响脚本执行速度的一个重要因素。条件判断有3中处理方式:if语句、switch语句和数组查找。If语句适用于少量离散值或一段区间值的判断;switch语句最好用于对3-10个离散值的判断;数组查找在处理大量离散值时效率最高。

    4、在JavaScript中,循环经常会成为性能瓶颈。为了使循环最高效,可以采用倒序的方式来处理元素,也就是在控制条件中,将迭代变量和0作比较。相比非0值,这种方式要快得多,从而显著提升数组的处理速度。如果必须要进行大量的迭代,还可以考虑使用Duff策略来提高执行速度。

    5、谨慎使用HTMLCollection对象。每次存取这类对象的属性,都会重新查询DOM中匹配的节点。为了避免这种高昂的开销,只有在必要时才存取HTMLCollection对象,并将经常存取的值存储在局部变量中。

    6、常见的字符串操作可能会带来意料之外的性能问题。Internet Explorer处理字符串连接的速度比其他浏览器要慢很多,但这没什么大不了,除非你要一次执行1000次以上的字符串连接。你可以对Internet Explorer处理字符串连接的方式进行优化:先将所有要连接的字符串存储到数组中,然后调用join()方法合并它们。去除字符串两端的空白也可能很耗时,这取决于字符串的大小。如果脚本中经常需要去除字符串两端的空白,那请确保使用最优算法。

    7、浏览器会限制JavaScript可以运行的最长时间,有些会以执行语句的数量作为 判断条件,有些则会控制JavaScript引擎执行的总时间。你可以使用定时器将任务拆分执行,从而绕开这些限制,避免浏览器弹出中止脚本运行的警告。

« 上一篇下一篇 »