JavaScript setTimeout循环在返回错误之前仅运行两次:

JavaScript setTimeout循环在返回错误之前仅运行两次:,javascript,jquery,html,xml,settimeout,Javascript,Jquery,Html,Xml,Settimeout,我一直在一个处理XML文件的网站上工作,当我添加了一点处理后,我遇到了一个问题。我遇到的问题是使用setTimeout让浏览器休息一下“呼吸”,这样它就不会在尝试将大量信息加载到innerHTML时崩溃。加载时,它只循环两次,然后返回一个错误“VM####:1”(####不断变化) var i=0; 过程(); 函数过程(){ 如果(i

我一直在一个处理XML文件的网站上工作,当我添加了一点处理后,我遇到了一个问题。我遇到的问题是使用setTimeout让浏览器休息一下“呼吸”,这样它就不会在尝试将大量信息加载到innerHTML时崩溃。加载时,它只循环两次,然后返回一个错误“VM####:1”(####不断变化)

var i=0;
过程();
函数过程(){
如果(i-1){
type=sType[n]。类型;
灯=灯。更换(sType[n]。类型“”);
g=0;
}
};
对于(n=0;(g==1)和(n-1){
vol=sVolume[n].vol;
lamp=lamp.replace(体积[n].vol',);
g=0;
}
};
对于(n=0;(g=1)和(n-1){
年=sYear[n]。年;
灯=灯。更换(系统[n]。年份“”);
g=0;
}
};
document.getElementById(“productDiv”).innerHTML+=“我正在处理的东西放在这里。”;
i++;
setTimeout(进程(),1);
}
};

您正在调用函数
过程
内部:

由于
process
不返回任何内容(与函数相反),因此这不会产生任何预期效果,更不用说您正在寻找的效果了。此外,在Chrome中,这样做会使浏览器无响应

您希望传递对稍后执行的函数的引用:

setTimeout(process, 1);

它只运行两次,因为它在第2行和第3行被调用了两次。并删除setTimeout函数中的引号。更改后,仍然不起作用,只是在浏览器中崩溃网页,而不是多次执行。非常感谢!我在这个问题上坚持了大约3天,尝试了大约40种不同的方法。非常感谢。
setTimeout(process(), 1);
setTimeout(process, 1);