文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>jQuery1.6性能评测

jQuery1.6性能评测

时间:2011-05-06  来源:元某人

上次做了jQuery1.5.1 DOM相关的函数性能测试,有童鞋指出我的计算方法不太合理,这里换了计时方式。

承接上一篇日志,这次要做的是jQuery1.6与1.5.2的属性值相关性能测试,1.6版本重写了绝大部分属性值函数,效果如何,慢慢道来。

首先是这次的计时函数。如下所示:

$(function(){
                var t1=new Date();
                var t2=new Date();
                var sum=0;
                var $input=$("#test");
                while(t2-t1<500){
                        for(var i=0;i<500;i++){
                                value=$input.val();
                        }
                        sum+=500;
                        t2=new Date();
                }
                alert((t2.getTime()-t1.getTime())/sum*1000);
        });

上次是直接循环3000次,然后算时间,3000次在IE6里往往要超时,而且IE6把弹提示框并等你按确认的时间也算进去了。所以误差巨大。这次控制时间为500ms以内,然后统计循环的次数,为了减少Date()函数的花销,设计了这个二重循环。最后求的的时间是函数单次运行的平均时间,单位是微秒,就是毫秒的千分之一。

结果如图。

val函数性能的确有明显进步,其余属性函数基本没有进步,甚至不如1.5.2了。也许是1.6换代码只是为了计算更精确和修正BUG,用意不在性能。

不过width函数慢的有点离谱,在IE6下直接用原生的offsetWidth方法可以只用30微秒,看来源代码发现jQuery调用each方式累加了width、margin、padding。好吧,这是css定义的方式。但是我还是没想通,为什么一个空div,一句css不写。原生和jQuery能跑出10倍的性能差。

最后,IE6一如既往的慢,Opera一如既往的优秀和性能稳定。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载