/*
*定時器應用函式
*安排函式f()在未來的呼叫模式
*在等待了若干毫秒之後呼叫f()
*如果設定了interval並沒有設定end引數,則對f()呼叫將不會停止
*如果沒有設定interval和end,只在若干毫秒後呼叫f()一次
*只有指定了f(),才會從start=0的時刻開始
*注意,呼叫invoke()不會阻塞,它會立即返回
*@param {函式} f 傳遞的函式
*@param {num} start 指定函式開始呼叫的時間
*@param {num} interval 指定函式重複呼叫的時間
*@param {num} end 指定函式結束的時間
*/
function invoke(f, start, interval, end) {
if (!start) start = 0;
if (arguments.length <= 2)
setTimeout(f, start);
else {
setTimeout(repeat,start);
function repeat() {
var h = setInterval(f, interval);
if (end) setTimeout(function() {clearInterval(h);},end);
}
}
}
- setTimeout()實現一個函式在指定的毫秒數之後執行,返回一個值,這個值可以傳遞給clearTimeout()用於取消這個函式的執行。
- setInterval()實現一個函式在指定的毫秒數的間隔裡重複呼叫,返回一個值,這個值可以傳遞給clearInterval()用於取消這個函式的執行。
- 這兩個函式是客戶端javascript中的全域性函式,window物件的方法。
本作品採用《CC 協議》,轉載必須註明作者和本文連結