JavaScript 計時
通過使用 JavaScript,我們有能力做到在一個設(shè)定的時間間隔之后來執(zhí)行代碼,而不是在函數(shù)被調(diào)用后立即執(zhí)行。我們稱之為計時事件。
實例
- 簡單的計時
- 單擊本例中的按鈕后,會在 5 秒后彈出一個警告框。
- 另一個簡單的計時
- 本例中的程序會執(zhí)行 2 秒、4 秒和 6 秒的計時。
- 在一個無窮循環(huán)中的計時事件
- 在本例中,單擊開始計時按鈕后,程序開始從 0 以秒計時。
- 帶有停止按鈕的無窮循環(huán)中的計時事件
- 在本例中,點擊計數(shù)按鈕后根據(jù)用戶輸入的數(shù)值開始倒計時,點擊停止按鈕停止計時。
- 使用計時事件制作的鐘表
- 一個 JavaScript 小時鐘
JavaScript 計時事件
通過使用 JavaScript,我們有能力作到在一個設(shè)定的時間間隔之后來執(zhí)行代碼,而不是在函數(shù)被調(diào)用后立即執(zhí)行。我們稱之為計時事件。
在 JavaScritp 中使用計時事件是很容易的,兩個關(guān)鍵方法是:
- setTimeout()
- 未來的某時執(zhí)行代碼
- clearTimeout()
- 取消setTimeout()
setTimeout()
語法
var t=setTimeout("javascript語句",毫秒)
setTimeout() 方法會返回某個值。在上面的語句中,值被儲存在名為 t 的變量中。假如你希望取消這個 setTimeout(),你可以使用這個變量名來指定它。
setTimeout() 的第一個參數(shù)是含有 JavaScript 語句的字符串。這個語句可能諸如 "alert('5 seconds!')",或者對函數(shù)的調(diào)用,諸如 alertMsg()"。
第二個參數(shù)指示從當(dāng)前起多少毫秒后執(zhí)行第一個參數(shù)。
提示:1000 毫秒等于一秒。
實例
當(dāng)下面這個例子中的按鈕被點擊時,一個提示框會在5秒中后彈出。
<html>
<head>
<script type="text/javascript">
function timedMsg()
{
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!" onClick="timedMsg()">
</form>
</body>
</html>
實例 - 無窮循環(huán)
要創(chuàng)建一個運行于無窮循環(huán)中的計時器,我們需要編寫一個函數(shù)來調(diào)用其自身。在下面的例子中,當(dāng)按鈕被點擊后,輸入域便從 0 開始計數(shù)。
<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
{
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
}
</script>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
</body>
</html>
clearTimeout()
語法
clearTimeout(setTimeout_variable)
實例
下面的例子和上面的無窮循環(huán)的例子相似。唯一的不同是,現(xiàn)在我們添加了一個 "Stop Count!" 按鈕來停止這個計數(shù)器:
<html> <head> <script type="text/javascript"> var c=0 var t function timedCount() { document.getElementById('txt').value=c c=c+1t=setTimeout("timedCount()",1000)
} function stopCount() {clearTimeout(t)
} </script> </head> <body> <form> <input type="button" value="Start count!" onClick="timedCount()"> <input type="text" id="txt"> <input type="button" value="Stop count!" onClick="stopCount()"> </form> </body> </html>