Dan*_*ola 2 javascript ajax jquery sleep
我有一个Ajax请求等待来自另一个进程的响应.
function test() {
var flag = 0;
while (flag === 0) {
$.ajax({
url: "cs/CheckForProcess",
async: false,
success: function(data) {
if (data !== 'NotReady') {
$('#results').html(data);
flag = 1;
} else {
$('#results').html('<h1>Processing...</h1>');
setTimeout(function() {
}, 6000);
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
问题是setTimout不起作用,虽然我在调试模式中看到执行了else条件.
编辑:我希望在验证过程未准备好后仅6秒发送下一个ajax请求.
我错过了什么?谢谢.
setTimeout是一个异步函数.它不会暂停您的脚本.您的脚本将继续运行(6000毫秒后您的setTimeout回调函数将执行).
您可以考虑使用setInterval来检查其他条件是否为真.
您可以通过跟踪其他地方的服务器响应来删除async:false.一旦成功回调,您应该取消间隔.
function test() {
var timerId = 0,
timerId = setInterval(function(){
$.ajax({
url: "cs/CheckForProcess",
success: function(data) {
if (data !== 'NotReady') {
$('#results').html(data);
clearInterval(timerId);
}
}
});
}, 6000)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8626 次 |
| 最近记录: |