JS中setInterval()和clearInterval()的使用以及注意事項 (實用,贊)
阿新 • • 發佈:2018-11-08
原文出處:https://blog.csdn.net/YDesire/article/details/81124331
延伸閱讀:clearInterval(timer)和timer = null的區別
setInterval(): 間隔指定的毫秒數不停地執行指定的程式碼,定時器
clearInterval(): 用於停止 setInterval() 方法執行的函式程式碼
使用方法:
setInterval(code,millisec),兩個引數都是必須的,第一個引數為要呼叫的函式或要執行的程式碼串。第二個引數為週期性執行或呼叫 code 之間的時間間隔,以毫秒計。
clearInterval(id_of_setinterval),引數是必須的,為setInterval返回的ID值
示例:
<body> <button onclick="start()">按鈕一</button> <button onclick="stop()">按鈕二</button> <script type="text/javascript"> var interval = null;//計時器 var i = 0; function start(){//啟動計時器函式 if(interval!=null){//判斷計時器是否為空 clearInterval(interval); interval=null; } interval = setInterval(overs,1000);//啟動計時器,呼叫overs函式, } function overs(){ i++; console.log(i); } function stop(){ clearInterval(interval); interval = null; } </script> </body>
在使用setInterval方法時,每一次啟動都需要對setInterval方法返回的值做一個判斷,判斷是否是空值,若不是空值,則要停止定時器並將值設為空,再重新啟動,如果不進行判斷並賦值,有可能會造成計時器迴圈呼叫,在同等的時間內同時執行呼叫的程式碼,並會隨著程式碼的執行時間增加而增加,導致功能無法實現,甚至佔用過多資源而卡死奔潰。因此在每一次使用setInterval方法時,都需要進行一次判斷。