JavaScript 計時事件

2022-05-18 15:20 更新

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

JavaScript 一個設定的時間間隔之后來執(zhí)行代碼

我們稱之為計時事件


JavaScript 計時事件

通過使用 JavaScript,我們有能力做到在一個設定的時間間隔之后來執(zhí)行代碼,而不是在函數(shù)被調用后立即執(zhí)行。我們稱之為計時事件。

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

  • setInterval() - 間隔指定的毫秒數(shù)不停地執(zhí)行指定的代碼。
  • setTimeout() - 暫停指定的毫秒數(shù)后執(zhí)行指定的代碼

Note: setInterval() 和 setTimeout() 是 HTML DOM Window對象的兩個方法。


setInterval() 方法

setInterval() 間隔指定的毫秒數(shù)不停地執(zhí)行指定的代碼

語法

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

window.setInterval() 方法可以不使用window前綴,直接使用函數(shù)setInterval()。

setInterval() 第一個參數(shù)是函數(shù)(function)。

第二個參數(shù)間隔的毫秒數(shù)

注意: 1000 毫秒是一秒。

實例

每三秒彈出 "hello" :

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

嘗試一下 ?

實例展示了如何使用 setInterval() 方法,但是每三秒彈出一次對用戶體驗并不好。

以下實例將顯示當前時間。 setInterval() 方法設置每秒鐘執(zhí)行一次代碼,就是和手表一樣。

實例

顯示當前時間

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

嘗試一下 ?


如何停止執(zhí)行?

clearInterval() 方法用于停止 setInterval() 方法執(zhí)行的函數(shù)代碼。

語法

window.clearInterval(intervalVariable)

window.clearInterval() 方法可以不使用window前綴,直接使用函數(shù)clearInterval()。

要使用 clearInterval() 方法, 在創(chuàng)建計時方法時你必須使用全局變量:

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

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

實例

以下例子,我們添加了 "Stop time" 按鈕:

<p id="demo"></p>
<button onclick="myStopFunction()">Stop time</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() 方法

語法

window.setTimeout("javascript 函數(shù)",毫秒數(shù));

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

setTimeout() 的第一個參數(shù)是含有 JavaScript 語句的字符串。這個語句可能諸如 "alert('5 seconds!')",或者對函數(shù)的調用,諸如"alertMsg()"。

第二個參數(shù)指示從當前起多少毫秒后執(zhí)行第一個參數(shù)。

提示:1000 毫秒等于一秒。

實例

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

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

嘗試一下 ?


如何停止執(zhí)行?

clearTimeout() 方法用于停止執(zhí)行setTimeout()方法的函數(shù)代碼。

語法

window.clearTimeout(timeoutVariable)

window.clearTimeout() 方法可以不使用window 前綴。

要使用clearTimeout() 方法, 你必須在創(chuàng)建超時方法中(setTimeout)使用全局變量:

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

如果函數(shù)還未被執(zhí)行,你可以使用 clearTimeout() 方法來停止執(zhí)行函數(shù)代碼。

實例

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

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

嘗試一下 ?


Examples

更多實例

另一個簡單的計時


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號