請考慮以下幾點:遞歸函數和setTimeout的VS的setInterval
$(document).ready(function() {
var promise;
(function refresh(){
promise = loadInfo();
promise.done(function() {
$.each(loadedData, function(key, value){
$('#' + key + ' div.info').html(value.label);
})
// Call itself for next iteration
window.setTimeout(refresh, 5 *1000);
})
})()
})
- 你覺得每次迭代創建一個新的變種
promise
或他們都重複使用相同的嗎? - 如果一個新的變種是針對每次迭代創建的,我可以有過載加班費(堆棧溢出!!!))?該應用程序顯示數據,並應該對長時間
- 我也有另一個版本
setInterval((function refresh(){...}), 5 *1000)
沒有setTimeout的,哪一個是更好地運行?思考?
謝謝
你顯示什麼不是傳統意義上的遞歸,而是 - 鏈式調用與延遲,因此,堆棧溢出不會發生 – Igor
@Igor自刷新函數調用自身,無論是延遲一段時間後還是不行,仍然是遞歸的。 –
@ Jonathan.Brink - 不,刷新函數不調用自身 – Igor