每當發生重複事件(點擊「保存」按鈕)但在給定時間段內不觸發它兩次時,我想觸發一個操作(如「更新已保存!」消息)。以最小間隔觸發javascript事件
對於以下情況,我希望excecuteFunction()最多每3秒觸發一次,但如果setInterval在4.5秒後清除,我會仍然希望它在6秒後再次觸發。
var minimumTime = 3000; // minimum ms between events
function myTimedEvent() {
if (lessThanMinimumTime())
// loop through again
else {
executeFunction();
}
}
window.setInterval(myTimedEvent, 500);
executeFunction()
可以在執行創建時間戳和lessThanMinimumTime()
可能是時間戳比較當前的時間,然後設定一個子間隔然後您就由executeFunction()
清除,如果它是最小的時間範圍之內。
必須有更好的方法。
爲什麼不關閉按鈕然後在定時器中啓用它? – 2011-04-13 21:08:15
按鈕的東西只是一個例子 - 它實際上是一個後臺進程。 – Arrel 2011-04-13 21:33:37
我會考慮在一個callBack類中包裝函數調用,該類包含每個函數的最後一次調用的時間戳......看起來很難但可靠... – Khez 2011-04-13 21:37:25