Javascript 在xmlHttpRequest提交中暂停10秒
此javascript代码相当长,但最重要的部分是它发布的结尾:Javascript 在xmlHttpRequest提交中暂停10秒,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,此javascript代码相当长,但最重要的部分是它发布的结尾: httpwp['send'](paramswp); 我尝试在每次发送之间暂停10秒,但没有成功。通常情况下,它会立即发送所有信息 完整代码要在调用此命令之前延迟10秒,可以使用设置超时 setTimeout(function() { httpwp['send'](paramswp); }, 10000); 或者更简单地说: setTimeout(function() { httpwp.send(paramswp); }, 1
httpwp['send'](paramswp);
我尝试在每次发送之间暂停10秒,但没有成功。通常情况下,它会立即发送所有信息
完整代码要在调用此命令之前延迟10秒,可以使用
设置超时
setTimeout(function() { httpwp['send'](paramswp); }, 10000);
或者更简单地说:
setTimeout(function() { httpwp.send(paramswp); }, 10000);
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);
//此for循环不起作用
对于(变量i=0;i<20;i++){
//做点什么
//暂停10秒钟——不可能完成
}
//因此,你可以这样做:
函数timeoutLoop(i,最大值){
如果(i
我发现您的代码有点难读,因此我没有尝试将上述内容与之集成,但这里是上述工作的一个非常简单的演示:
或者,这里有一个更清晰的版本,通过使用回调将实际处理与循环函数分离:
我相信,如果您仔细研究一下上述内容,您将看到如何在代码中使用它。您可能想考虑在Ajax成功回调内部设置后续超时。更多描述。为什么要使用
httpwp['send']
符号?它会减慢打字速度,并增加+3个字符!!除了Shiplu的评论,您可以说httpwp.send()