我有一个 ajax 函数,它被调用并返回 json 数据。此函数通过 setInterval 循环调用:
function SetMaxBidReload() {
var reloadInt = 6000;
var doReload = true;
//set some logic here
if (doReload) {
setInterval(function () { ReloadMaxBid(); }, reloadInt);
}
}
function ReloadMaxBid() {
var nextReload;
$.ajax({
url: 'ajaxcall.aspx',
cache: false,
success: function (data) {
//change to dom elemants here based on return data
nextReload = data[0].NextReload;
}
});
return nextReload;
}
我想做的是根据 ajax 调用返回的内容更改 setInterval 的 reloadInt。
a:这可能吗 b:我该怎么做?
我愿意接受关于如何通过不同的编码来实现这一点的建议
最佳答案
setInterval
接受一次超时参数,然后根据该间隔执行函数,更改 reloadInt
不会有任何影响。
你需要在成功回调中使用setTimeout
:
function ReloadMaxBid() {
$.ajax({
url: 'ajaxcall.aspx',
cache: false,
success: function (data) {
//change to dom elemants here based on return data
var next = data[0].NextReload;
if (next !== -1) {
setTimeout(function(){ReloadMaxBid();}, next);
}
}
});
}
您还需要在某处使用值为 6000
的 setTimeout
来开始。
关于javascript - 从 setInterval 函数获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281373/