javascript 几万次for循环,如何改善

master_leo 2007-06-25 12:51:46
javascript 几万次for循环,一运行就死掉,如何解决,可否用多线程,请高手帮忙
...全文
2477 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
master_leo 2007-06-27
  • 打赏
  • 举报
回复
小鬼子的需求,确实有点变
hcz202202 2007-06-27
  • 打赏
  • 举报
回复
mark
gzw323 2007-06-27
  • 打赏
  • 举报
回复
up一下







个人签名~~
---------------------------
惊爆支持ASP、ASP.NET2.0空间500M+SQL数据库100M 特惠价格:128一年
http://www.myidc.info/webhost/stylehost.aspx
洋溢2016 2007-06-27
  • 打赏
  • 举报
回复
no
xp520 2007-06-27
  • 打赏
  • 举报
回复
看看`
border1 2007-06-26
  • 打赏
  • 举报
回复
用outerHTML一次赋值较好!! ( 开源的基于ajax的可视化自定义web表单工具, 在: http://my5155.meibu.com )
xdspower 2007-06-26
  • 打赏
  • 举报
回复
虽然已经结贴,还是想说两句:
这个其实该优化的是需求,其实想一想,需要显示的不会很多的,就是看你怎么处理显示过程而已。
gwallan 2007-06-26
  • 打赏
  • 举报
回复
mark
cuixiping 2007-06-26
  • 打赏
  • 举报
回复
setTimeout是正解!
运行一个月的循环都不会死掉。
pxboy 2007-06-26
  • 打赏
  • 举报
回复
你可以定义一个div,然后动态从server端取数据,server直接传送html代码到客户端,类似于:serverString="<select><option></option>...</select>",然后直接用div.innerHTML=serverString就行了,这样浏览器里就没有循环了,取决于你服务器代码的优化状况了。
backhead 2007-06-26
  • 打赏
  • 举报
回复
属于设计问题。。。不是技术问题
Atwind 2007-06-26
  • 打赏
  • 举报
回复
我要是用户,绝不上这样的网站~
几W次在客户端远行,想想吧!
比尔咔咔 2007-06-26
  • 打赏
  • 举报
回复
....

请用多个页面

你觉得在一个页面有几万次 载入 循环 是否正确

分化成几个页面/步骤做
xunuo230 2007-06-26
  • 打赏
  • 举报
回复
学习一下
wgqlj 2007-06-26
  • 打赏
  • 举报
回复
数据量有点大。不过LZ可采用setTimeout试试。
function test()
{
//do something
setTimeout("test",10);
}
这样不会造成拥堵,但是载入会比较慢。。。
亮灯了 2007-06-26
  • 打赏
  • 举报
回复
不错,速度相差不少的!
master_leo 2007-06-25
  • 打赏
  • 举报
回复
谢谢
patchclass 2007-06-25
  • 打赏
  • 举报
回复
js无多线程,1万条记录不算多
不过 效率上来说 objlbxleft.add(new Option(name,id)); 是比较慢
可以考虑用 innerHTML的方式,楼上hbhbhbhbhb1021(天外水火(我要多努力)) 的方式,先拼装成html的字符串,然后 用innerHTML方式生成是相对比较快的
hbhbhbhbhb1021 2007-06-25
  • 打赏
  • 举报
回复
上面有例子呀,直接存成一个HTM文件就可以了
下面的代码会比上面的快一点
<script language=javascript>
function OpenDocument(iCategoryID)
{
var a=new Date()
//alert(iCategoryID);
var obj = document.getElementById(iCategoryID);
if(obj.value != null)
{

var ds=obj.value;
if(1==1)
{
var temp=new Array();
temp[0]='<select name="lbxleft">'
for(var i=0;i<10000;i++)
{
var name = i;
var id = i;
temp[temp.length]="<option value='"+id+"'>"+name+"</option>"
/*temp[temp.length]=id
temp[temp.length]="'>"
temp[temp.length]=name
temp[temp.length]="</option>"
*/
}
temp[temp.length]="</select>"
document.all("lbxleft").outerHTML=temp.join("");
}
else
{}
}
document.getElementById("div1").innerHTML=new Date()-a
}
</script>
<select name="aaa" onchange=OpenDocument(this.name)>
<option value="bbb">bbb</option>
<option value="ccc">ccc</option>
</select>
<select name="lbxleft"></select>

<div id="div1"></div>
master_leo 2007-06-25
  • 打赏
  • 举报
回复
谢谢诸位了,如果没有更好的方法我就结贴了
加载更多回复(25)

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧