让代码在JavaScript中循环的最快的方法
程序员文章站
2022-04-26 22:25:52
...
Gregory Reimer,sun.com的前端工程师,他接二连三的提到怎样的方法能够在JavaScript中最快的让代码循环。
专门为大型数据集:
我建立了一个循环的基准测试套件,让不同方式的编码在JavaScript中循环。一些例子已经准备就绪,本地数组与HTML集合在表示上没有任何的不同之处,但是后台的实现是不同的(HTML集合缺少pop(),slice()的方法等…),但他们两者都肯能丢失重要的信息。
我的怀疑被证实,在浏览器*问长度大的属性时,HTML集合要比数组更困难,这时,在缓存数据方面就有巨大的差异。HTML集合比较活跃,在循环期间,如果后台的DOM被修改,那么缓存将会发生故障。从另一方面来说,HTML集合是不会被冷落的,所以最好的办法就是在测试与做项目时能够忽略长度。因为你必须这么做:
如果你考虑一下结果,你会看到逆向的while循环是一个遍历基本集合的最快办法。
推荐查看test suite
专门为大型数据集:
我建立了一个循环的基准测试套件,让不同方式的编码在JavaScript中循环。一些例子已经准备就绪,本地数组与HTML集合在表示上没有任何的不同之处,但是后台的实现是不同的(HTML集合缺少pop(),slice()的方法等…),但他们两者都肯能丢失重要的信息。
我的怀疑被证实,在浏览器*问长度大的属性时,HTML集合要比数组更困难,这时,在缓存数据方面就有巨大的差异。HTML集合比较活跃,在循环期间,如果后台的DOM被修改,那么缓存将会发生故障。从另一方面来说,HTML集合是不会被冷落的,所以最好的办法就是在测试与做项目时能够忽略长度。因为你必须这么做:
JAVASCRIPT: // looping a dom html collection for (var i=0, node; node = hColl[i++];) { // do something with node }
如果你考虑一下结果,你会看到逆向的while循环是一个遍历基本集合的最快办法。
JAVASCRIPT: var i = arr.length; while (i--) {}
推荐查看test suite
上一篇: CSS基础2
下一篇: graphviz 安装和入门