从setInterval函数获取返回值
问题描述:
我有一个被调用并返回json数据的ajax函数。这个功能是通过一个的setInterval循环调用:从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;
}
什么即时试图做的是改变的setInterval的依据是什么来自AJAX调用回reloadInt。
a:是可能的吗?b:我该怎么做?
即时通信开放,就如何通过不同
答
setInterval
编码它来完成这一建议需要超时PARAM一次,然后执行基于该时间间隔的功能,改变了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
与6000
价值的地方得到的东西开始。
`ReloadMaxBid`总是返回`undefined`,因为````成功`处理程序可能不会在`ReloadMaxBid`返回之前被调用。 – 2010-11-25 23:02:50
确实......我甚至没有想到这一点。你有什么建议来克服这个问题? – AaronHS 2010-11-25 23:07:54