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入门基础 document.write输出
Feb 22 Javascript
js实现简单随机抽奖的方法
Jan 27 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 Javascript
JS非空验证及邮箱验证的实例
Aug 11 Javascript
javascript 判断用户有没有操作页面
Oct 17 Javascript
微信小程序实现YDUI的ScrollTab组件
Feb 02 Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
webpack4 处理SCSS的方法示例
Sep 03 Javascript
Vue2 添加数据可视化支持的方法步骤
Jan 02 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 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中Date()时间日期函数的使用方法小结
2011/04/20 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
python django生成迁移文件的实例
2019/08/31 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
《梅兰芳学艺》教学反思
2014/02/24 职场文书
课例研修方案
2014/05/31 职场文书
商业街策划方案
2014/05/31 职场文书
企业理念标语
2014/06/09 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
mysql部分操作
2021/04/05 MySQL
详解Redis瘦身指南
2021/05/26 Redis
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript