我做了一個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