JavaScript效率调优经验


Posted in Javascript onJune 04, 2009

1. 将循环次数的定义放到循环体外:这点好像所有的语言都是一样的,在100个元素以上时效果越来越明显。也就是说将for(var i=0;i<arrData.length;i++)修改为for(var i=0,len=arrData.length;i<len;i++)会很大地提高性能,因为它避免了每循环一次计算一下length的操作。另外,有老外宣称,降序循环速度更快,即for(var i=arrData.length-1;i>=0;i--)。本人测试后发现和升序循环相比效率差异不大。
2. 将多层对象引用改为更短路径的引用:JavaScript中,这个问题非常明显,如proposalNo域var proposalNoField = fm.proposalNo。在一个循环中(100次以上)使用proposalNoField.value和fm.proposalNo.value的区别非常巨大。所以尽量通过使用中间变量的方式来缩短访问路径。
3. 第三方JavaScript包的影响:由于JavaScript支持原型,如prototype.js就修改了Array的一些行为,有时自己写的代码是没有问题的,但是如果被修改了原型,则也会发生问题,如prototype.js的1.4版本就存在Bug,某些情况下的数组排序会导致死循环。

Javascript 相关文章推荐
JavaScript面象对象设计
Apr 28 Javascript
用Javascript实现Sleep暂停功能代码
Sep 03 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
如何利用AngularJS打造一款简单Web应用
Dec 05 Javascript
Web打印解决方案之证件套打的实现思路
Aug 29 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
Jul 02 Javascript
AngularJS基于MVC的复杂操作实例讲解
Dec 31 Javascript
JavaScript实现一个简易的计算器实例代码
May 10 Javascript
微信小程序实现留言功能
Oct 31 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
微信小程序 调用微信授权窗口相关问题解决
Jul 25 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
Jun 04 #Javascript
javascript 常用方法总结
Jun 03 #Javascript
Javascript 获取字符串字节数的多种方法
Jun 02 #Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 #Javascript
Javascript String对象扩展HTML编码和解码的方法
Jun 02 #Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 #Javascript
慎用 somefunction.prototype 分析
Jun 02 #Javascript
You might like
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
php array_map()函数实例用法
2021/03/03 PHP
强制设为首页代码
2006/06/19 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
Django自定义用户认证示例详解
2018/03/14 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
python做接口测试的必要性
2019/11/20 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
中式餐厅创业计划书范文
2014/01/23 职场文书
中学生运动会入场词
2014/02/12 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
行政诉讼答辩状
2015/05/21 职场文书
上诉状格式
2015/05/23 职场文书
2019暑假学生安全口号
2019/06/27 职场文书