日期:2014-05-16  浏览次数:20695 次

是不是循环引用,导致了内存泄露
本帖最后由 bubsy 于 2013-09-02 16:48:46 编辑
代码如下:

$("#intodb_button").click(function(){
$(this).attr({"disabled":"disabled"});
loopin();
});

function loopin(){
var hisdbid=$("#hisdbid").text();
var nextid=$("#nextid").text();
var maxid=$("#maxid").text();
$.get("index.asp",{act:"intodb",hisdbid:hisdbid,nextid:nextid,maxid:maxid},function(data,status){
if(status=="success"){
// alert(data);
var strd = data.split("\|\|\|");
$("#disp").prepend("<li>"+data+"</li>");
if(Number(strd[0])==Number(maxid)){
$.get("index.asp",{act:"finish_indb",hisdbid:hisdbid},function(data,status){
if(status=="success"){
$("#main_page").css({"display":"block"});
alert("回写标志成功,导入数据库作业结束")
}
})
}else{
$("#nextid").html(Number(strd[0])+1);
loopin();//再次执行loopin()
}
}
})
};


当程序循环到2300多次时,就停住了!为什么?如何修改
JS ajax

------解决方案--------------------
如果页面的 DOM 元素太多操作是卡住的
------解决方案--------------------
loopin(); 的时候只收集数据 不要进行dom操作
这个时候可以显示一个加载条 

等数据收集完了
进入 alert("回写标志成功,导入数据库作业结束")   这里的时候
把数据变成你的 dom
注意大量的dom操作的时候 先隐藏父dom  操作完了在显示出来

试试看把