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