JavaScript計時器
1.什么是JavaScript計時器?
在JavaScript中,我們可以在設定的時間間隔之后來執行代碼,而不是在函數被調用后立即執行。
2.計時器類型
一次性計時器:僅在指定的延遲時間之后觸發一次。
間隔性觸發計時器:每隔一定的時間間隔就觸發一次
3.計時器方法
1):一次性計時器
A):setTimeout(): 指定的延遲時間之后來執行代碼,進執行一次
語法:setTimeout(代碼,延遲時間);
參數說明:
1. 要調用的函數或要執行的代碼串。
2. 延時時間:在執行代碼前需等待的時間,以毫秒為單位(1s=1000ms)。
B):clearTimeout():取消setTimeout()設置
語法:clearTimeout(timer)
參數說明:
timer:由 setTimeout() 返回的 ID 值。該值標識要取消的延遲執行代碼塊。
調用setTimeout()和clearTimeout()延遲方法:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JavaScript計時器</title> <input type="button" value="開始" id="btnStart" onclick="StartPrint()"> <input type="button" value="暫停" id="btnStop" onclick="StopPrint()"> <br> </head> <body> <script type="text/javascript"> //定義打印方法 function Print() { console.log("我在打印!"); } var timer;//該值標識要取消的延遲執行代碼塊 //開始打印 function StartPrint() { timer=setTimeout(Print,1000);//調用計時器,延遲1秒打印,只執行一次 } //結束打印 function StopPrint() { clearTimeout(timer);//取消計時器 } </script> </body> </html>
調用setTimeout()和clearTimeout()無限循環方法:
<!DOCTYPE html>
<html> <head> <meta charset="utf-8"> <title>JavaScript計時器</title> <input type="button" value="開始" id="btnStart" onclick="StartPrint()"> <input type="button" value="暫停" id="btnStop" onclick="StopPrint()"> <br> </head> <body> <script type="text/javascript"> //定義打印方法 function Print() { console.log("我在打印!"); timer=setTimeout(Print,1000);//開始計時器,調用自己,進行無窮循環 } var timer;//該值表示要取消延遲執行的代碼塊 //開始打印 function StartPrint() { Print();//調用打印方法 } //結束打印 function StopPrint() { clearTimeout(timer);//取消計時器 } </script> </body> </html>
2):間隔性觸發計時器
A):setInterval():在執行時,從載入頁面后每隔指定的時間執行代碼
語法:setInterval(代碼,交互時間);
參數說明:
1. 代碼:要調用的函數或要執行的代碼串。
2. 交互時間:周期性執行或調用表達式之間的時間間隔,以毫秒計(1s=1000ms)。
返回值:
一個可以傳遞給 clearInterval() 從而取消對"代碼"的周期性執行的值。
調用函數格式(假設有一個clock()函數):
setInterval("clock()",1000) 或 setInterval(clock,1000)
B):clearInterval() 方法可取消由 setInterval() 設置的交互時間
語法:clearInterval(timer)
參數說明:
timer:由 setInterval() 返回的 ID 值。
調用setInterval()和clearInterval() 執行間隔執行方法實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JavaScript計時器</title> <input type="button" value="開始" id="btnStart" onclick="StartPrint()"> <input type="button" value="暫停" id="btnStop" onclick="StopPrint()"> <br> </head> <body> <script type="text/javascript"> //定義打印方法 function Print() { console.log("我在打印!"); } var timer;//該值標識要取消的計時器執行代碼塊 //開始打印 function StartPrint() { timer=setInterval("Print()",1000);//開始計時器 } //結束打印 function StopPrint() { clearInterval(timer);;//取消計時器 } </script> </body> </html>