gpt4 book ai didi

javascript - 如何在无限 while 循环内调用 Ajax 函数

转载 作者:行者123 更新时间:2023-11-28 13:00:37 25 4
gpt4 key购买 nike

谁能告诉我如何在无限 while 循环中运行 Ajax 函数?

while(true){
$.ajax({
type: 'POST',
data: {'constraintId': experimentId},
url: '/calender-generation-status/',
success: function(data){
console.log("inside ajax");
}
});
}

这段代码的问题是 while 循环在 success attr 之前一直运行,而 success 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 // <===
});
}

或更好:

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

...它将一个对象返回给 doAjax 的调用者,并带有一个可用于停止进程的 stop 方法。

关于javascript - 如何在无限 while 循环内调用 Ajax 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50961900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com