关于jquery性能最佳实践的讨论,与求教。

本文通过实际测试案例对比了jQuery中不同选择器的性能表现,发现使用大于号选择符(如 $('#parent>.child'))的方法在某些情况下表现更优。

很久没写东西,年前的项目也接近尾声,最近在网上看到一篇文章是 阮一峰 的 《jQuery最佳实践》 链接在文末。

这个纠结解了
原因是我在测试的时候:带入了错误的变量。具体可以查看图片上的 $(parentID > childClass) 我直接比较两个字符换大小了!

感谢 html5中文网 QQ群中的 “不见丘比特”。

其中第三点提到父元素与子元素的关系中提到了 从父元素选择子元素的用例:

      $('.child', $parent)
      $parent.find('.child')
      $parent.children('.child')
      $('#parent > .child')
      $('#parent .child')
      $('.child', $('#parent'))

 在其所给的测试用例中 确实是使用jquery的find方法最快,但是稍作修改却得到了另外的一个结果$('#parent > .child')完胜。

在作者的用例中只是直接缓存了对象 $('#parent');但是当我们把dom的id和class属性作为常量定义并传入测试用例中的时候就出现我说的另外一个结果。
作者原生测试页面:http://jsperf.com/bell-selector
结果截图:


修改后的测试页面:http://jsperf.com/bell-selector/2
结果截图:


同时给我我从真实环境中取出来的一块代码段所做的测试,同样也是$('#parent > .child')这样的写法最快。
测试页面:http://jsperf.com/findchildren
结果截图:



从以上结果截图中可以看到,我给出的两个测试结果明显是使用了大于号选择符的那个性能做好。


请各位看到此文或者了解详情的能给一个说明。关于文章中的其它内容都是比较好的观点。
文章原文:http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html

 

园子中那位有时间和条件的可以对以上各个操作做一次调试,给出详细的流程说明。我要等到手中的项目做完才有时间来调试这个过程。

转载于:https://www.cnblogs.com/zhuyidong/archive/2012/03/30/2425511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值