• 全部
  • 问答

jscript,dhtml性能不能忘,欢迎同类文章

kingdomzhf 众源晴天(深圳)网络科技有限公 技术总监/研发总监  2003-10-09 11:40:01
1.慎用eval
A.使用0s
for(var i = 0; i < 100;i++)
{
var ti2 = new Date()
}
B.使用15s
for(var i = 0; i < 100;i++)
{
var b =eval("new Date()")
}
2.注意document.all等集合对象的引用位置
A.使用31s
for(var i =0;i < 1000;i++)
{
document.all("test").value="test";
}
B.使用63s
var oAll = document.all;
for(var i =0;i < 1000;i++)
{
oAll("test").value="test";
}
3.减少下载次数,因为js会存于cache中,通过包含常用的组件从而减少下载时间
<script src="myfile.js"></script>
4.不要写冗余代码,30k的代码你要想到精简到20k或更少
5.限制使用动态属性(一个元素的属性修改时去修改另一个属性)--setExpression
6.建立一个 HTML 字符串并对文档进行一次更改,而不是进行多次更新
A.使用250s
divUpdate.innerHTML = "";
for ( var i=0; i<100; i++ )
{
divUpdate.innerHTML += "<SPAN>这是一个较慢的方法!</SPAN>";
}
B.使用0s
var str="";
for ( var i=0; i<100; i++ )
{
str += "<SPAN>因为使用字符串,此方法较快!</SPAN>";
}
divUpdate.innerHTML = str;

以上测试结果所处环境:cpu:p4 1.7,mem 256
...全文
8 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
coolstar 2003-12-26
1.慎用eval
A.使用0s
for(var i = 0; i < 100;i++)
{
var ti2 = new Date()
}
B.使用15s
for(var i = 0; i < 100;i++)
{
var b =eval("new Date()")
}

废话

没有人会这么用eval的,一般用eval的都是没法直接定义的
回复
Recon 2003-10-12
好文 谢谢
又学到东西了
回复
erictang2003 2003-10-12
用document.getElementById( "elementId" ) 代替 document.all
跨Browser
回复
pi1ot 2003-10-11
document.all是不标准的过时语法,在ie以外的浏览器上不支持.
回复
jsidiot 2003-10-11
2.注意document.all等集合对象的引用位置
我对这个不是很理解
回复
nolonely 2003-10-11
看阿信的转载
http://expert.csdn.net/Expert/topic/2176/2176029.xml?temp=.8189813
回复
kingdomzhf 2003-10-11
没人跟
回复
kingdomzhf 2003-10-11
up
回复
发帖
JavaScript
创建于2007-09-28

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2003-10-09 11:40
社区公告
暂无公告