我有一个被调用的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:我该怎么做?
我可以通过不同的编码方式获得有关如何实现这一目标的建议
答案 0 :(得分:2)
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);
}
}
});
}
您还需要在某处使用值setTimeout
的{{1}}来开始工作。