Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在xmlHttpRequest提交中暂停10秒_Javascript_Ajax_Xmlhttprequest - Fatal编程技术网

Javascript 在xmlHttpRequest提交中暂停10秒

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

此javascript代码相当长,但最重要的部分是它发布的结尾:

 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()