JavaScript setTimeout循环只运行两次就返回错误:
JavaScript setTimeout loop only running twice before returning error:
我一直在做一个处理XML文件的网站,一旦我增加了一点处理,我就遇到了一个问题。我遇到的问题是使用setTimeout让浏览器休息一下"呼吸",这样它就不会崩溃,试图将一堆信息加载到innerHTML中。当我加载它时,它只循环两次,然后返回错误"VM###:1"(###不断变化)。
var i = 0;
process();
function process(){
if (i < x.length) {
var name = $(x[i]).find("Description[DescriptionCode='DEF']").text();
var ixx = x.length + (20 - (x.length % 20));
var ix = Math.round((i+10) / 20);
var type = "";
var desc = $(x[i]).find("Description[DescriptionCode='DES']").text();
var lamp = desc;
var g = 1;
var id = $(x[i]).find("PartNumber").text();
var ddId = "D" + id + "D"
var price = $(x[i]).find("Pricing[PriceType='RMP']").find("Price").text();
for (n=0;(g == 1) && (n < sType.length); n++) {
if (desc.indexOf(sType[n].type) > -1) {
type = sType[n].type;
lamp = lamp.replace(sType[n].type, '');
g = 0;
}
};
for (n=0;(g == 1) && (n < sVolume.length); n++) {
if (desc.indexOf(sVolume[n].vol) > -1) {
vol = sVolume[n].vol;
lamp = lamp.replace(sVolume[n].vol, '');
g = 0;
}
};
for (n=0;(g == 1) && (n < sYear.length); n++) {
if (desc.indexOf(sYear[n].year) > -1) {
year = sYear[n].year;
lamp = lamp.replace(sYear[n].year, '');
g = 0;
}
};
document.getElementById("productDiv").innerHTML += "The stuff I'm processing goes here.";
i++;
setTimeout(process(), 1);
}
};
您正在调用setTimeout
内部的process
函数:
setTimeout(process(), 1);
由于process
不返回任何东西(与函数相反),这将不会有任何预期的效果-更不用说您正在寻找的那个了。而且,在Chrome中,这样做会使浏览器无响应。
你想传递一个引用到以后要执行的函数:
setTimeout(process, 1);
相关文章:
- jQuery 每个循环返回数据两次
- 按两次escape键后返回旧值-Internet Explorer
- outerWidth(true) 连续返回两次不同的值,而无需重新加载页面
- jQuery 函数 - 单击两次返回一个值
- 具有非全局正则表达式的“match”和“exec”似乎返回第一个匹配项两次
- .is(“:animated”) 选择器在动画期间返回 true,并调用两次
- 平滑滚动并使用 Firefox 上的 popState 返回按钮 - 需要单击两次
- Angular$q返回promise两次$http服务调用
- popstate-需要点击两次后退按钮才能真正返回
- Highcharts'这'返回同一对象两次
- 如何在用户不点击任何链接或按钮的情况下,使用php或javascript强制用户在移动网页上返回两次
- 使用jQuery和javascript计算两次之间的差异,并以分钟为单位返回
- 如果我在一个函数中返回两次,第二个会覆盖第一个吗?
- PHP Ajax返回HTML两次
- 数组中.拼接返回一个值两次
- 如果切换img src然后再返回,图像将被加载两次
- JavaScript setTimeout循环只运行两次就返回错误:
- 一键返回两次结果
- 需要点击两次返回历史记录(使用pushState)
- 两次返回似乎不起作用