如何优化下面这段代码?
作者:dh20156 来源:w3cgroup 时间:2010-01-23 11:30:00
DEMO:
var testobj = document.getElementById("test");
for(var i=0;i<testobj.childNodes.length;i++){
var oText = testobj.childNodes[i].innerHTML;
if(oText==""){
alert("Item "+i+" is null");
}
}
该例主要是看内存的分配,重点优化应该是将循环中的定义变量操作放到循环外,这样就不会重复分配内存空间;另外一些优化可以考虑递减循环操作,循环外定义变量i的值,如下:
var testobj = document.getElementById("test");
var oText = "";
var i = testobj.childNodes.length;
for(;i>-1;i--){
oText = testobj.childNodes[i].innerHTML;
if(oText==""){
alert("Item "+i+" is null");
}
}
M2说testobj.childNodes[i].childNodes比testobj.childNodes[i].innerHTML快,暂且不提;
月MM说,关键的问题是循环体内没有必要对oText重复初始化,而不是重复声明;因为for不是一个scope,对于js来说;但是对于其他一些语言如C或者Java显然是有区别的;
标签:循环,JavaScript,编程,代码优化
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
ImageMagick FAQ 问题摘要
2008-10-21 13:14:00
三大措施设置数据库安全 保障网站安全运营
2008-11-28 14:41:00
JavaScript正则表达式的简单应用:高亮显示
2008-07-20 12:46:00
Javascript优化五大原则
2007-10-30 13:49:00
如何防止页面中的敏感信息被提取
2008-05-04 11:59:00
利用location.hash实现跨域iframe自适应高宽
2009-08-02 20:31:00
页面重构应注意的repaint和reflow
2011-03-31 17:11:00
![](https://img.aspxhome.com/file/UploadPic/20113/31/01-22s.jpg)
如何制作一个从Access数据库中读取记录的下拉菜单?
2010-06-29 21:23:00
逐步讲解向Access数据库上传且显示图片
2008-11-28 16:51:00
百度的图片轮换JS代码,支持FF
2007-11-16 16:24:00
如何把URL和邮件地址自动转换为超级链接?
2009-11-02 20:22:00
MS SQL2000 数据库自动备份方法
2010-07-22 19:52:00
windows server 2003+IIS6 出现 'ASP 不正常,因为执行请求
2010-05-07 11:02:00
Oracle捕获问题SQL解决CPU过渡消耗
2010-07-21 13:14:00
编写SQL Server的扩展存储过程实例
2009-01-20 15:45:00
Oracle7.X 回滚表空间数据文件误删除处理方法
2010-07-28 12:54:00
卓越网的配送服务让我很不满意
2009-03-19 13:49:00
![](https://img.aspxhome.com/file/UploadPic/20093/19/dingdan-600x456-50s.jpg)
怎样修改 MySQL数据库中的密码
2008-11-27 15:35:00
sql ntext数据类型字符替换实现代码
2011-09-30 11:08:00
用户研究中的人物角色
2010-02-08 12:15:00