测试代码如下:
很简单的逻辑,testSpeed是循环执行100w次从dom中获取id=oHref的a对象,分别用之间函数调用和eval的方式执行,测试的结果如下:
IE6下:
两者的执行效率没有明显的差别,基本上都属于比较慢,下面是测试7次的各花的时间(单位是ms)
time1:8703,time2:8782
time1:10094,time2:10078
time1:9984,time2:10219
time1:9891,time2:10109
time1:9671,time2:9829
time1:10031,time2:10281
time1:10093,time2:10563
Firefox3.0.13的环境下:
time1:1550,time2:8105
time1:1687,time2:9215
time1:1764,time2:8499
time1:1667,time2:8216
time1:1518,time2:8586
time1:1756,time2:9003
time1:1575,time2:9040
可以看出,在firefox下,之间函数调用的效率基本上比eval方式快5倍,另外从这里也可以看出firefox在dom element query的性能明显比IE好得多。