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 相关文章推荐
激活 ActiveX 控件
Oct 09 Javascript
node.js中的fs.stat方法使用说明
Dec 16 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 Javascript
JavaScript判断按钮被点击的方法
Dec 13 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 Javascript
react-router-dom 嵌套路由的实现
May 02 Javascript
vue+element实现动态加载表单
Dec 13 Vue.js
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
打造计数器DIY三步曲(下)
2006/10/09 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
javascript 数组操作详解
2015/01/29 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Python中的模块和包概念介绍
2015/04/13 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Python列表list排列组合操作示例
2018/12/18 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python实现验证码识别
2020/06/15 Python
通信工程专业女生个人求职信
2013/09/21 职场文书
中专毕业自我鉴定
2013/10/16 职场文书
横幅标语大全
2014/06/17 职场文书
目标责任书格式
2014/07/28 职场文书
咖啡店创业计划书
2014/08/15 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript