这个javascript代码相当冗长,但最重要的部分是它发布的结尾:
httpwp['send'](paramswp);
我试过没有成功,每次发送之间暂停10秒。通常它会立即发送它们。
答案 0 :(得分:1)
要在拨打此电话前延迟10秒,您可以使用setTimeout
setTimeout(function() { httpwp['send'](paramswp); }, 10000);
或更简单:
setTimeout(function() { httpwp.send(paramswp); }, 10000);
答案 1 :(得分:1)
setTimeout()
函数不会在指定时间内暂停执行,它会在指定时间后对要执行的函数进行排队。 setTimeout()
之后的代码行将立即执行。因此,如果您有以下代码:
1 someFunction();
2 setTimeout(function(){console.log("From timeout");}, 10000);
3 console.log("After setTimeout()");
将在第1行调用someFunction()
,然后在第2行将匿名函数排队等待在10秒内执行,然后第3行将执行,记录“在setTimeout()之后”,最后10秒钟后,匿名函数将执行“从超时时间”的记录。
如果你想编码一个循环,每个迭代间隔10秒,而不是使用传统的for循环你编写一个使用setTimeout()
来调用自身的函数:
// this for loop won't work
for(var i = 0; i < 20; i++) {
// do something
// pause for 10 seconds ---- can't be done
}
// so instead you do something like this:
function timeoutLoop(i, max) {
if (i < max) {
// do something
i++;
setTimeout(function(){timeoutLoop(i, max);}, 10000);
}
}
timeoutLoop(0, 20);
我发现你的代码有点难以阅读,所以我没有尝试将上面的内容与它集成,但这里有一个非常简单的上述工作演示:http://jsfiddle.net/CrSEt/1/
或者这是一个更简洁的版本,它使用回调将实际处理与循环函数分开:http://jsfiddle.net/CrSEt/
我敢肯定,如果您对上述内容有所了解,您将会看到如何让它在您的代码中运行。您可能需要考虑从ajax成功回调中设置后续超时。