谁能告诉我如何在无限循环中运行Ajax函数?
while(true){
$.ajax({
type: 'POST',
data: {'constraintId': experimentId},
url: '/calender-generation-status/',
success: function(data){
console.log("inside ajax");
}
});
}
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是while循环在成功attr之前保持运行,并且成功attr之后的所有语句都没有被执行.
Websockets可能是你正在做的更好的方法,当然,如果不了解更多,就不可能说.不断地向服务器发出XHR调用对于两端来说都是很多工作.
但重新提出问题:要实现循环,根本不使用循环; 相反,你从complete回调开始下一个调用:
function doAjax() {
$.ajax({
type: 'POST',
data: {'constraintId': experimentId},
url: '/calender-generation-status/',
success: function(data){
console.log("inside ajax");
},
complete: doAjax // <===
});
}
Run Code Online (Sandbox Code Playgroud)
或更好:
function doAjax() {
var stop = false;
doCall();
return {
stop: function() {
stop = true;
}
};
function doCall() {
$.ajax({
type: 'POST',
data: {'constraintId': experimentId},
url: '/calender-generation-status/',
success: function(data){
console.log("inside ajax");
},
complete: function() {
if (!stop) {
doCall();
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
... 使用可用于停止进程doAjax的stop方法将对象返回给调用者.
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |