HTML DOM 快速導覽 - window 物件的方法 setTimeout()

window.setTimeout() 設定固定時間後的動作。



setTimeout() 雖然是 window 物件的方法,在多數瀏覽器中也可單獨使用,也就是直接呼叫 setTimeout() ,不需要寫 window.setTimeout() 。


setTimeout() 需要至少兩個參數
id = window.setTimeout(code, delay);


id 為 setInterval() 的回傳值, code 為重複動作的程式碼,通常為函數名稱, delay 則是延遲時間,也就是重複動作的間隔時間單位為毫秒。舉例如下
var intervalID;
var n = 11;

function run() {
    var t = document.getElementById("demo");
    if (n != 0) {
        n = n - 1;
        t.innerHTML = n;
    }
    intervalID = window.setTimeout(run, 1000);
}

function stop() {
    window.clearTimeout(intervalID);
}

/* 《程式語言教學誌》的範例程式
     http://pydoing.blogspot.com/
     檔名:window049.js
     功能:示範 JavaScript 程式 
     作者:張凱慶
     時間:西元 2011 年 8 月 */


這裡設計 run() 函數呼叫 setTimeout()
function run() {
    var t = document.getElementById("demo");
    if (n != 0) {
        n = n - 1;
        t.innerHTML = n;
    }
    intervalID = window.setTimeout(run, 1000);
}


每 1000 毫秒,也就是一秒後執行一次 run() 。由於 n 初值設定為 11 ,剛開始執行 run() 的時候先減 1 ,因此 id 屬性為 demo 的元素會顯示 10 ,每一秒後遞減 1 ,因此這是個倒數計時的程式。


我們以的 HTML 文件載入
<!DOCTYPE html>
<html>
<head>
<title>HTML DOM DEMO</title>
<script src="window049.js" type="text/javascript"></script>
</head>
<body>
<input type="button" value="RUN" onclick="run();">
<input type="button" value="STOP" onclick="stop();">
<div id="demo" style="font-size:x-large;"></div>
</body>
</html>

<!-- 《程式語言教學誌》的範例程式
     http://pydoing.blogspot.com/
     檔名:window049.html
     功能:示範 JavaScript 程式 
     作者:張凱慶
     時間:西元 2011 年 8 月 -->


瀏覽器 (broswer) 開啟後,點擊 RUN 倒數計時就開始,再次點擊 STOP 就會停止倒數計時



中英文術語對照
瀏覽器broswer


您可以繼續參考
window 物件


相關目錄
HTML DOM 快速導覽
JavaScript 教材
首頁


參考資料
https://developer.mozilla.org/en/DOM/window.setTimeout

沒有留言: