我試圖理解這段代碼的自動刷新頁面:理解在JavaScript
function setIdle(cb, seconds) {
var timer;
var interval = seconds * 1000;
function refresh() {
clearInterval(timer);
timer = setTimeout(cb, interval);
};
$(document).on('keypress, click', refresh);
refresh();
}
setIdle(function() {
location.href = location.href;
}, 5);
setIdle
有兩個參數。在其功能內部,它具有功能refresh
,其清除Timeout
功能上的定時器。現在,每當一個事件發生時(click
,keypress
)refresh()
被調用。
,然後最終這個函數被調用傳遞另一個功能和和int值(5
),其後面將是秒的量的計時器。在後面通過cb
表示的其他功能中,頁面將被刷新(location.href = location.href;
)。
這將導致automaticpage刷新每5秒。
所以現在我不明白,如果我把一個附加功能:
setIdle(function() {
console.log('hi');
}, 1);
爲什麼第二個函數只調用一次,而不是每秒鐘像其他一個?
你可能會發現一個有趣的類似問題:[優雅地檢測JavaScript中的空閒時間](http://stackoverflow.com/questions/667555/detecting-idle-time-in-javascript-elegantly)。 – Roberto