在javascritp中,有兩個關於定時器的專用函數,它們是:
1.倒計定時器:timename=setTimeout("function();",delaytime);
2.循環定時器:timename=setInterval("function();",delaytime);
function()是定時器觸發時要執行的是事件的函數,可以是一個函數,也可以是幾個函數,或者javascript的語句也可以,單要用;隔開;delaytime則是間隔的時間,以毫秒為單位。
倒計時定時器就是在指定時間後觸發事件,而循環定時器就是在間隔時間到來時反復觸發事件,其區別在於:前者只是作用一次,而後者則不停地作用。
倒計時定時器一般用於頁面上只需要觸發一次的的情況,比如點擊某按鈕後頁面在一定時間後跳轉到相應的站點,也可以用於判斷一個浏覽者是不是你的站點上的“老客”,如果不是,你就可以在5秒或者10秒後跳轉到相應的站點,然後告訴他以後再來可以在某個地方按某一個按鈕就可以快速進入。
循環定時器一般用於站點上需要從復執行的效果,比如一個javascript的滾動條或者狀態欄,也可以用於將頁面的背景用飛雪的圖片來表示。這些事件需要隔一段時間運行一次。
有時候我們也想去掉一些加上的定時器,此時可以用clearTimeout(timename) 來關閉倒計時定時器,而用clearInterval(timename)來關閉循環定時器。
例1:
<SCRIPT LANGUAGE="JavaScript">
setTimeout("confirm('123456')",1000);
</SCRIPT>
<script language="JavaScript" type="text/javascript">
function count() {
setTimeout("alert('三秒到了')",3000)
}
</Script>
<INPUT TYPE="button" VALUE=" 計時開始" onClick="count()">
例2:
<Script><script language="JavaScript" type="text/javascript">
var sec = 0;
timerID = setInterval("count()",1000);
function count() {
num.innerHTML = sec++;
}
</Script>
停留時間:
<FONT ID="num" FACE="impact">0</FONT>秒鐘
<INPUT TYPE="button" VALUE="停止" onClick="clearInterval(timerID)">
例3:
<script language="JavaScript" type="text/javascript">
var str = "這是一個在線拍賣的網站,請盡情血拼吧!";
var seq = 0;
function scroll() {
msg = str.substring(0, seq+1);
banner.innerHTML = msg;
seq++;
if (seq >= str.length) seq = 0;
}
</Script>
<Body onLoad="setInterval('scroll()',500)">
<FONT ID="banner"></FONT>
</Body>