我做了一个ajax调用来获得一个毫秒值,这将连续调用不同 。jQuery setTimeout,可变时间参数
我显示元素中返回的值。
然后我想取这个值并将它用作setTimeout中的时间参数 。
当我的函数再次执行时,我想使用返回的新值重置setTimeout 时间参数。
这里是我的,但它只是初步在十秒钟后执行一次:
var timeInterval = 10000;
setTimeout(function() {
$.ajax({
type: "POST",
url: "NowPlaying.asmx/GetMilliSeconds",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$('#duration').html(msg.d.MilliSeconds);
clearTimeout(timeInterval);
timeInterval = msg.d.MilliSeconds;
}
});
}, timeInterval);
是否有可能保持基于连续调用GetMilliSeconds不同的值重置一个时间间隔?
ahh,击败我,并且击中所有重要的点。帮你! +1:P – Jordan
谢谢。在第一次执行clearInterval之后,第二次调用callBack。我在想,是不是第一个叫回来的电话会退出?是否有某种堆叠在某个地方?我只是想知道,如果每个callBack调用都在等待退出,会消耗什么资源。我不太了解jQuery和javaScript。这个递归部分让我感到困惑。 – user847335
@ user847335由于ajax是异步的,它会在不同的线程上执行正常代码。这意味着第一次通话在第二次通话之前退出。请注意,如果timeInterval太短,'callBack'可能会在被清除之前再次被调用。 – Jordan