下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、jQuery的Each比JS原生for循环性能慢许多的缘由_ 这篇文章主要介绍了jQuery的Each比JS原生for循环性能慢许多的缘由的相关资料,需要的伴侣可以参考下 其实查看jQuery的源代码,发觉each的代码很简洁,但为什么性能和原生的for循环相差几十倍呢? jQuery的each的核心代码 for (; i length; i+) value = callback.call(obji, i, obji); if (value = false) break; 看着很简洁,但为什么会慢许多呢? 编写测试代码如下: var length=300000; function GetArr
2、() var t = ; for (var i = 0; i length; i+) ti = i; return t; function each1(obj, callback) var i = 0; var length = obj.length for (; i length; i+) value = callback(i, obji); /* if ( value = false ) 去掉了推断 break; */ function each2(obj, callback) var i = 0; var length = obj.length for (; i length; i+)
3、value = callback(i, obji);/*去掉了call*/ if (value = false) break; function each3(obj, callback) var i = 0; var length = obj.length for (; i length; i+) value = callback.call(obji, i, obji);/*自己写的call*/ if (value = false) break; function Test1() var t = GetArr(); var date1 = new Date().getTime(); var l
4、engtharr = t.length; var total = 0; each1(t, function (i, n) total += n; ); var date12 = new Date().getTime(); console.log(1Test + (date12 - date1); function Test2() var t = GetArr(); var date1 = new Date().getTime(); var total = 0; each2(t, function (i, n) total += n; ); var date12 = new Date().get
5、Time(); console.log(2Test + (date12 - date1); function Test3() var t = GetArr(); var date1 = new Date().getTime(); var total = 0; each3(t, function (i, n) total += n; ); var date12 = new Date().getTime(); console.log(3Test + (date12 - date1); function Test4() var t = GetArr(); var date1 = new Date()
6、.getTime(); var total = 0; $.each(t, function (i, n) total += n; ); var date12 = new Date().getTime(); console.log(4Test + (date12 - date1); 运行测试,发觉,第一个和其次个相差不是很大,这说明由于break这个推断导致的性能差异很少,但其次个和第三个,第四个偏差就就不止一倍了,而其次个和第三个唯一的区分就是调用了call,看来call会导致性能损失,由于call会切换上下文,当然jQuery的each慢还有其他缘由,它还在循环中调用了其他的方法,call只
7、是一个缘由罢了。 因此可以说call,和apply都是js中比较消耗性能的方法,在性能要求严格时,建议少用。 下面在通过一段代码看下jquery的each和js原生for循环性能对比 html xmlns=l head runat=server titlefor与each性能比较/title script src=./Cks/jquery-1.7.1.min.js type=text/javascript/script script type=text/javascript language=javascript function getSelectLength() var time1 = n
8、ew Date().getTime(); var len = $(#select_test).find(option).length; var selectObj = $(#select_test); for (var i = 0; i len; i+) if (selectObj.get(0).optionsi.text = 111111) selectObj.get(0).optionsi.selected = true; break; var time2 = new Date().getTime(); alert(for循环执行时间: + (time2 - time1); time1 =
9、 new Date().getTime(); $(#select_test).find(option).each(function () if ($(this).text() = 111111) $(this)0.selected = true; ); time2 = new Date().getTime(); alert(each循环执行时间: + (time2 - time1); /script /head body form id=form1 runat=server divselect id=select_test option value=1111111/option option
10、value=2222222/option option value=3333333/option option value=4444444/option option value=55/option option value=66/option option value=77/option option value=88/option option value=99/option option value=1010/option option value=1111/option option value=1212/option option value=1313/option option value=1414/option option value=1515/option option value=1616/option option value=1717/option option value=1818/option option value=1919/option option value=2020/option /selectinput type=but
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店常用语重点讲义资料
- 2026下半年山东省事业单位退役军人服务中心笔试历年真题试卷附参考答案
- 高中英语教资面试听力专项真题演练试卷
- 家庭教育讲座观后感
- 电力风险专项试题及详细答案
- 产品开发方专业试题及答案解析
- 福建省泉州市永春县2027届八上数学期末质量跟踪监视试题含解析
- 淘宝品牌运营模拟试题及答案
- 写给家长的写作入门指南
- 今日申论题目及答案解析
- 《铁路机车运用管理规则》
- DB45T 1625-2024 地质灾害危险性评估规程
- 家装园林设计合同范例
- 企业碳信息披露与质量评价规范
- DBJ52T 088-2018 贵州省建筑桩基设计与施工技术规程
- 看图猜词游戏规则模板
- DL∕T 1671-2016 火力发电厂空冷岛钢结构安装及验收标准
- 2024年民用航空器维修人员执照英语备考试题库(核心600题)
- 重庆市铜梁职业教育中心辅导员招聘考试真题2023
- 统计与概率《义务教育数学课程标准》解读
- 智能制造的发展与时代背景
评论
0/150
提交评论