js中計時器重要使用window.setInterval()方法和window.setTimeout()方法,
其中setInterval()方法的作用是每隔一段時間執行一次方法,而window.setTimeout()在一段時間內調用函數。
setTimeout()方法一般通過調用自身迭代的方式實現計時器。與這兩個方法對應的,還有清除這兩個函數效果的
兩個方法,分別是window.clearInterval()和window.clearTimeout()。
1.setInterval()和clearInterval() (window可以省略)
(1)setInterval()方法常用的語法如下:
setInterval(function,interval);
其中function是將要在間隔時間內執行的函數,interval是間隔的時間,單位是毫秒。
(2)clearInterval()方法的常用語法如下:
timer = setInterval(function,interval);
clearInterval(timer);
例子:
1 <html> 2 <head></head> 3 <body> 4 <p id="timer">點擊開始計時!</p> 5 <div> 6 <button id="cutTimer" onclick="start()">開始</button> 7 <button id="cutTimer" onclick="stop()">停止</button> 8 </div> 9 <script> 10 var cutT = document.getElementById("cutTimer"); 11 12 var timer1 = null; 13 14 function start(){ 15 var countTime = function(){ 16 date = new Date(); 17 dateStr = date.toLocaleTimeString(); 18 document.getElementById("timer").innerHTML = dateStr; 19 } 20 21 timer1 = window.setInterval(countTime,1000); 22 23 } 24 25 26 function stop(){ 27 console.log("timer stop:"+timer1); 28 window.clearInterval(timer1); 29 }; 30 31 </script> 32 </body> 33 </html>
在這個例子中,點擊開始后(會有一段延遲),頁面上每隔1000毫秒(也就是1秒)執行一次,也就是顯示當前的時分秒。
2.setTimeout()和clearTimeout()
這兩個方法與setInterval()和clearInterval()方法用法類似,示例如下:
1 <html> 2 <head></head> 3 <body> 4 <p id="timer"></p> 5 <div> 6 <button id="cutTimer" onclick="timeOutAlert();">執行</button> 7 <button id="cutTimer" onclick="stopTimeOutAlert();">停止</button> 8 </div> 9 <script> 10 timeOut = null; 11 function timeOutAlert(){ 12 timeOut = window.setTimeout(function(){ 13 console.log("time out..."+timeOut); 14 timeOutAlert(); 15 },1000); 16 } 17 18 function stopTimeOutAlert(){ 19 console.log("timeCut:"+timeOut); 20 window.clearTimeout(timeOut); 21 } 22 </script> 23 </body> 24 </html>
可以看到timeOutAlert()方法每隔1000毫秒調用自身,在控制台打印出當前timeOut的值,timeOut第一次使用
setTimeout()后為1,每次增加1,clearTimeout()通過這個數字作為入參清除當前的setTimeout()。
