JavaScript 計時事件

1
2
3
4
5
6
7
8
9
10
11
12

JavaScript 一個設定的時間間隔之後來執行程式碼

我們稱之為計時事件


JavaScript 計時事件

通過使用 JavaScript,我們有能力做到在一個設定的時間間隔之後來執行程式碼,而不是在函式被呼叫後立即執行。我們稱之為計時事件。

在 JavaScritp 中使用計時事件是很容易的,兩個關鍵方法是:

  • setInterval() - 間隔指定的毫秒數不停地執行指定的程式碼。
  • setTimeout() - 在指定的毫秒數後執行指定程式碼。

注意: setInterval() 和 setTimeout() 是 HTML DOM Window物件的兩個方法。


setInterval() 方法

setInterval() 間隔指定的毫秒數不停地執行指定的程式碼

語法

window.setInterval("javascript function",milliseconds);

window.setInterval() 方法可以不使用 window 字首,直接使用函式 setInterval()

setInterval() 第一個引數是函式(function)。

第二個引數間隔的毫秒數

注意: 1000 毫秒是一秒。

例項

每三秒彈出 "hello" :

setInterval(function(){alert("Hello")},3000);

嘗試一下 ?

例項展示瞭如何使用 setInterval() 方法,但是每三秒彈出一次對使用者體驗並不好。

以下例項將顯示當前時間。 setInterval() 方法設定每秒鐘執行一次程式碼,就是手錶一樣。

例項

顯示當前時間

var myVar=setInterval(function(){myTimer()},1000); function myTimer() { var d=new Date(); var t=d.toLocaleTimeString(); document.getElementById("demo").innerHTML=t; }

嘗試一下 ?


如何停止執行?

clearInterval() 方法用於停止 setInterval() 方法執行的函式程式碼。

語法

window.clearInterval(intervalVariable)

window.clearInterval() 方法可以不使用window字首,直接使用函式clearInterval()

要使用 clearInterval() 方法, 在建立計時方法時你必須使用全域性變數:

myVar=setInterval("javascript function",milliseconds);

然後你可以使用 clearInterval() 方法來停止執行。

例項

以下例子,我們添加了 "停止" 按鈕:

<p id="demo"></p> <button onclick="myStopFunction()">停止</button> <script> var myVar=setInterval(function(){myTimer()},1000); function myTimer(){ var d=new Date(); var t=d.toLocaleTimeString(); document.getElementById("demo").innerHTML=t; } function myStopFunction(){ clearInterval(myVar); } </script>

嘗試一下 ?


setTimeout() 方法

語法

myVar= window.setTimeout("javascript function", milliseconds);

setTimeout() 方法會返回某個值。在上面的語句中,值被儲存在名為 myVar 的變數中。假如你希望取消這個 setTimeout(),你可以使用這個變數名來指定它。

setTimeout() 的第一個引數是含有 JavaScript 語句的字串。這個語句可能諸如 "alert('5 seconds!')",或者對函式的呼叫,諸如 alertMsg。

第二個引數指示從當前起多少毫秒後執行第一個引數。

提示:1000 毫秒等於一秒。

例項

等待3秒,然後彈出 "Hello":

setTimeout(function(){alert("Hello")},3000);

嘗試一下 ?


如何停止執行?

clearTimeout() 方法用於停止執行setTimeout()方法的函式程式碼。

語法

window.clearTimeout(timeoutVariable)

window.clearTimeout() 方法可以不使用window 字首。

要使用clearTimeout() 方法, 你必須在建立超時方法中(setTimeout)使用全域性變數:

myVar=setTimeout("javascript function",milliseconds);

如果函式還未被執行,你可以使用 clearTimeout() 方法來停止執行函式程式碼。

例項

以下是同一個例項, 但是添加了 "Stop the alert" 按鈕:

var myVar; function myFunction() { myVar=setTimeout(function(){alert("Hello")},3000); } function myStopFunction() { clearTimeout(myVar); }

嘗試一下 ?


Examples

更多例項

另一個簡單的計時