1. 程式人生 > >【JavaScript】使用定時器實現Js的延期執行或重複執行setTimeout,setInterval

【JavaScript】使用定時器實現Js的延期執行或重複執行setTimeout,setInterval

1.window.setTimeout方法
該方法可以延時執行一個函式,例如:
<script language="JavaScript" type="text/javascript">
<!--
function hello(){
alert("hello");
}
window.setTimeout(hello,5000);
//-->
</script>
這段程式碼將使得頁面開啟5秒鐘後顯示對話方塊“hello”。其中最後一句也可以寫為:
window.setTimeout("hello()",5000);
讀者可以體會它們的差別,在window.setInterval方法中也有這樣的性質。
如果在延時期限到達之前取消延執行,可以使用window.clearTimeout(timeoutId)方法,該方法接收一個id,表示一個定時器。這個id是由setTimeout方法返回的,例如:
<script language="JavaScript" type="text/javascript">
<!--
function hello(){
      alert("hello");
}
var id=window.setTimeout(hello,5000);
document.onclick=function(){
     window.clearTimeout(id);
}
//-->
</script>
這樣,如果要取消顯示,只需單擊頁面任何一部分,就執行了window.clearTimeout方法,使得超時操作被取消。

2.window.setInterval方法

該方法使得一個函式每隔固定時間被呼叫一次,是一個很常用的方法。如果想要取消定時執行,和clearTimeout方法類似,可以呼叫window.clearInterval方法。clearInterval方法同樣接收一個setInterval方法返回的值作為引數。例如:
//定義一個反覆執行的呼叫
var id=window.setInterval("somefunction",10000);
//取消定時執行
window.clearInterval(id);
上面的程式碼僅用於說明怎樣取消一個定時執行。實際上在很多場合都需要用到setInterval方法,下面將設計一個秒錶,來介紹setInterval函式的用途:該秒錶將包括兩個按鈕和一個用於顯示時間的文字框。當單擊開始按鈕時開始計時,最小單位為0.01秒,此時再次單擊按鈕則停止計時,文字框顯示經過的時間。另外一個按鈕用於將當前時間清零。其實現程式碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
</head>
<body>
<form action="somepage.asp">
<input type="text" value="0" name="txt1"/>
<input type="button" value="開始" name="btnStart"/>
<input type="button" value="重置" name="btnReset"/>
</form>
</body>
</html>
<script language="JavaScript" type="text/javascript">
<!--
//獲取表單中的表單域
var txt=document.forms[0].elements["txt1"];
var btnStart=document.forms[0].elements["btnStart"];
var btnReset=document.forms[0].elements["btnReset"]
//定義定時器的id
var id;
//每10毫秒該值增加1
var seed=0;