(PS:JavaScript 一個設定的時間間隔之后來執行代碼,我們稱之為計時事件。)
JavaScript 計時事件
通過使用 JavaScript,我們有能力做到在一個設定的時間間隔之后來執行代碼,而不是在函數被調用后立即執行。我們稱之為計時事件。
在 JavaScritp 中使用計時事件是很容易的,兩個關鍵方法是:
- setInterval() - 間隔指定的毫秒數不停地執行指定的代碼。
- setTimeout() - 暫停指定的毫秒數后執行指定的代碼
Note: setInterval() 和 setTimeout() 是 HTML DOM Window對象的兩個方法。
setInterval() 方法
setInterval() 間隔指定的毫秒數不停地執行指定的代碼
語法
window.setInterval() 方法可以不使用window前綴,直接使用函數setInterval()。
setInterval() 第一個參數是函數(function)。
第二個參數間隔的毫秒數
注意: 1000 毫秒是一秒。
實例
每三秒彈出 "hello" :
實例展示了如何使用 setInterval() 方法,但是每三秒彈出一次對用戶體驗並不好。
以下實例將顯示當前時間。 setInterval() 方法設置每秒鍾執行一次代碼,就是手表一樣。
實例
顯示當前時間
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("demo").innerHTML=t;
}
如何停止執行?
clearInterval() 方法用於停止 setInterval() 方法執行的函數代碼。
語法
window.clearInterval() 方法可以不使用window前綴,直接使用函數clearInterval()。
要使用 clearInterval() 方法, 在創建計時方法時你必須使用全局變量:
然后你可以使用clearInterval() 方法來停止執行。
實例
以下例子,我們添加了 "Stop time" 按鈕:
<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() 方法
語法
setTimeout() 方法會返回某個值。在上面的語句中,值被儲存在名為 t 的變量中。假如你希望取消這個 setTimeout(),你可以使用這個變量名來指定它。
setTimeout() 的第一個參數是含有 JavaScript 語句的字符串。這個語句可能諸如 "alert('5 seconds!')",或者對函數的調用,諸如 alertMsg()"。
第二個參數指示從當前起多少毫秒后執行第一個參數。
提示:1000 毫秒等於一秒。
實例
等待3秒,然后彈出 "Hello":
如何停止執行?
clearTimeout() 方法用於停止執行setTimeout()方法的函數代碼。
語法
window.clearTimeout() 方法可以不使用window 前綴。
要使用clearTimeout() 方法, 你必須在創建超時方法中(setTimeout)使用全局變量:
如果函數還未被執行,你可以使用 clearTimeout() 方法來停止執行函數代碼。
實例
以下是同一個實例, 但是添加了 "Stop the alert" 按鈕:
function myFunction()
{
myVar=setTimeout(function(){alert("Hello")},3000);
}
function myStopFunction()
{
clearTimeout(myVar);
}