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 相关文章推荐
Ext 表单布局实例代码
Apr 30 Javascript
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
Jan 07 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
Feb 22 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
Mar 30 Javascript
chrome不支持form.submit的解决方案
Apr 28 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
vuex vue简单使用知识点总结
Aug 29 Javascript
Vue-resource安装过程及使用方法解析
Jul 21 Javascript
基于JavaScript实现简单抽奖功能代码实例
Oct 20 Javascript
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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
ThinkPHP路由详解
2015/07/27 PHP
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
Python 实现选择排序的算法步骤
2018/04/22 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python 实现数组相减示例
2019/12/27 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
平安工地汇报材料
2014/08/19 职场文书
党员三严三实心得体会
2014/10/13 职场文书
模范班主任事迹材料
2014/12/17 职场文书
校本培训个人总结
2015/02/28 职场文书
红色电影观后感
2015/06/18 职场文书
企业财务管理制度范本
2015/08/04 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
Python几种酷炫的进度条的方式
2022/04/11 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis