gpt4 book ai didi

javascript - 无法超出 SetInterval 返回值

转载 作者:行者123 更新时间:2023-12-03 07:45:58 24 4
gpt4 key购买 nike

我遇到一个问题,无法退出此 setInterval。该函数对 PHP 文件进行 Ajax 调用。如果返回的数据有用,它将设置一个全局变量作为数据,然后它应该返回并停止调用该 PHP 文件。我目前遇到的问题是,即使它获得有用的数据,它也不会停止运行。回归好像没有什么效果。也许我只是需要另一双眼睛来关注这个问题。

setInterval(function() {

$.ajax({
type: "POST",
url: 'www.example.com/test.php',
success: function(data) {
alert(data);
if (data != 'None') {
url = data;
document.getElementById("disableddesktop").style.display = "none";
document.getElementById("download").style.display = "block";
document.getElementById("enableddesktopscan").style.display = "block";

$.ajax({
type: "POST",
url: 'www.example.com/test.php',
data: {
plan: document.getElementById("plan").value,
country: document.getElementById("firstcountry").value
},
success: function(data) {
console.log(data);
numberoforders = data;
document.getElementById("total").innerHTML = data;
}
});

return;
}
}
});
}, 9000);

最佳答案

您需要clearInterval而不是return:

var interval= setInterval(function(){
clearInterval(interval); //clear interval
}, 9000)

interval is the identifier of the repeated action you want to cancel. This ID is returned from setInterval().

所以在你的情况下应该是:

var interval = setInterval(function() {    
$.ajax({
type: "POST",
url: 'www.example.com/test.php',
success: function(data) {
alert(data);
if (data != 'None') {
url = data;
document.getElementById("disableddesktop").style.display = "none";
document.getElementById("download").style.display = "block";
document.getElementById("enableddesktopscan").style.display = "block";

$.ajax({
type: "POST",
url: 'www.example.com/test.php',
data: {
plan: document.getElementById("plan").value,
country: document.getElementById("firstcountry").value
},
success: function(data) {
console.log(data);
numberoforders = data;
document.getElementById("total").innerHTML = data;
}
});

clearInterval(interval); //clear interval
}
}
});
}, 9000);

As mplungjan said its not a good idea to use setInterval with AJAX instead use setTimeout

关于javascript - 无法超出 SetInterval 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206993/

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