谁能告诉我如何在无限的while循环中运行Ajax函数?
while(true){
$.ajax({
type: 'POST',
data: {'constraintId': experimentId},
url: '/calender-generation-status/',
success: function(data){
console.log("inside ajax");
}
});
}这段代码的问题是while循环在成功attr之前一直在运行,而在成功attr之后的所有语句都没有执行。
发布于 2018-06-21 14:45:29
Websockets可能是你正在做的事情的一种更好的方法,当然,在不了解更多的情况下是不可能说的。不断地向服务器发出XHR调用对于两端来说都是大量的工作。
但是请回答您的问题:为了实现您的循环,您根本不使用循环;相反,您将从complete回调中启动下一个调用:
function doAjax() {
$.ajax({
type: 'POST',
data: {'constraintId': experimentId},
url: '/calender-generation-status/',
success: function(data){
console.log("inside ajax");
},
complete: doAjax // <===
});
}或者更好:
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();
}
}
});
}
}...which向doAjax的调用者返回一个对象,其中包含一个可用于停止该进程的stop方法。
https://stackoverflow.com/questions/50961900
复制相似问题