javascript程序如何性能调优? 难道就没有办法解决了吗?看来只有开发一个activeX控件才行了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要用 document.getElementByName 这种写法, 这种写法每次都会产生一个集合, 非常耗资源的, 你可以针对某个特定ID的元素直接引用. IE: document.all.ID NS: document.ID 不知如果采用w3c DOM 结构来遍历html元素是否会改进性能?js文件太大,不好帖上来,请见晾! 没有代码,就没有办法知道瓶颈的所在。把“然后在将其中的值累计竟然用了一秒多钟”的那段先贴出来看看?测一下“用document.getElementsByName("je")取得一个数组”具体用了多少时间。 嗯,给你做个对比试验,应该和你的要求有点接近的:慢:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><SCRIPT LANGUAGE="JavaScript"><!--var ar = ["<table>"];var l=1;for (var i=0;i<30;i++){ ar[l++]= "<tr>" for (var j=0;j<30;j++){ ar[l++]="<td><input name=je type=checkbox value="+(i*30+j)+"></td>" } ar[l++]= "</tr>"}ar[l++]= "</table>"function test(){ var d0 = new Date(); var elms = document.getElementsByName("je"); var d1 = new Date(); var count = 0; for (var i=0;i<elms.length;i++){ if (elms[i].checked) count += elms[i].value-0; } var d2 = new Date(); alert("累积结果:"+count) alert("获得元素集合用时:"+(d1-d0)) alert("遍历元素集合用时:"+(d2-d1))}//--></SCRIPT></HEAD><BODY><SCRIPT LANGUAGE="JavaScript"><!--document.write(ar.join(""));//--></SCRIPT><br><br><button onclick="test()">test</button></BODY></HTML>快<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""><SCRIPT LANGUAGE="JavaScript"><!--var ar = ["<table>"];var l=1;for (var i=0;i<30;i++){ ar[l++]= "<tr>" for (var j=0;j<30;j++){ ar[l++]="<td><input name=je type=checkbox value="+(i*30+j)+" onclick=sign(this)></td>" } ar[l++]= "</tr>"}ar[l++]= "</table>"function test(){ var d0 = new Date(); var count = 0; for (var i in signs) count += signs[i]; var d1 = new Date(); alert("累积结果:"+count) alert("遍历元素集合用时:"+(d1-d0))}var signs=new Object();function sign(elm){ signs[elm.uniqueID] = elm.checked?elm.value-0:0;}//--></SCRIPT></HEAD><BODY><SCRIPT LANGUAGE="JavaScript"><!--document.write(ar.join(""));//--></SCRIPT><br><br><button onclick="test()">test</button></BODY></HTML> function Calculate_all(){ try{ with(document.ZZSFB4Form){////////////////计算/////////////////////////////// //初始化合计数 if(elements["je"]!=null){ hjje.value=0; for(j=0;j<document.getElementsByName("je").length;j++)//////本期金额小计 {if(document.getElementsByName("je")[j].value!=""&&document.getElementsByName("zfbz")[j].value==0) add(hjje,2,hjje,document.getElementsByName("je")[j]); } } if(elements["se"]!=null){ if(hjse.value!=""||hjse.value!=0) hjse.value=0; for(j=0;j<document.getElementsByName("se").length;j++)//////本期税额小计 {if(document.getElementsByName("se")[j].value!=""&&document.getElementsByName("zfbz")[j].value==0) add(hjse,2,hjse,document.getElementsByName("se")[j]); } } JAVASCRIPT问题求助,在线等! 什么情况下使用回调函数? js 刷新 iframe jsp单元格的问题 怎么在JS中和<object>控件对象交互 如果获取iframe的src属性所指向的页面中的html元素的引用? 新手请教!急急急 用JAVASCRIPT怎样来获取页面的SESSION值,急,在线等。。。。。 关于 attachEvent 的一个问题 xmlHttpRequest的跨域post问题 表中的一行有一定寬這一行的最后一列的寬怎麼設為這一行余下來的寬度,但問題是我不知前面各列的寬??? 入门请教?
js文件太大,不好帖上来,请见晾!
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
var ar = ["<table>"];
var l=1;
for (var i=0;i<30;i++){
ar[l++]= "<tr>"
for (var j=0;j<30;j++){
ar[l++]="<td><input name=je type=checkbox value="+(i*30+j)+"></td>"
}
ar[l++]= "</tr>"
}
ar[l++]= "</table>"
function test(){
var d0 = new Date();
var elms = document.getElementsByName("je");
var d1 = new Date();
var count = 0;
for (var i=0;i<elms.length;i++){
if (elms[i].checked) count += elms[i].value-0;
}
var d2 = new Date();
alert("累积结果:"+count)
alert("获得元素集合用时:"+(d1-d0))
alert("遍历元素集合用时:"+(d2-d1))
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write(ar.join(""));
//-->
</SCRIPT>
<br><br>
<button onclick="test()">test</button>
</BODY>
</HTML>快
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
var ar = ["<table>"];
var l=1;
for (var i=0;i<30;i++){
ar[l++]= "<tr>"
for (var j=0;j<30;j++){
ar[l++]="<td><input name=je type=checkbox value="+(i*30+j)+" onclick=sign(this)></td>"
}
ar[l++]= "</tr>"
}
ar[l++]= "</table>"
function test(){
var d0 = new Date();
var count = 0;
for (var i in signs)
count += signs[i];
var d1 = new Date();
alert("累积结果:"+count)
alert("遍历元素集合用时:"+(d1-d0))
}var signs=new Object();
function sign(elm){
signs[elm.uniqueID] = elm.checked?elm.value-0:0;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write(ar.join(""));
//-->
</SCRIPT>
<br><br>
<button onclick="test()">test</button>
</BODY>
</HTML>
try{
with(document.ZZSFB4Form){////////////////计算///////////////////////////////
//初始化合计数
if(elements["je"]!=null){
hjje.value=0;
for(j=0;j<document.getElementsByName("je").length;j++)//////本期金额小计
{if(document.getElementsByName("je")[j].value!=""&&document.getElementsByName("zfbz")[j].value==0)
add(hjje,2,hjje,document.getElementsByName("je")[j]);
}
}
if(elements["se"]!=null){
if(hjse.value!=""||hjse.value!=0)
hjse.value=0;
for(j=0;j<document.getElementsByName("se").length;j++)//////本期税额小计
{if(document.getElementsByName("se")[j].value!=""&&document.getElementsByName("zfbz")[j].value==0)
add(hjse,2,hjse,document.getElementsByName("se")[j]);
}
}