setInterval()與clearInterval()的用法
阿新 • • 發佈:2018-12-14
setInterval(function,interval[,arg1,arg2,......argn]):標準動作面板中setInterval函式的預設語法
setInterval(object,methodName,interval[,arg1,arg2,.....argn]):專家模式動作中使用的方法
clearInterval(id_of_setinterval):引數是必須的,為setInterval返回的ID值
其中的引數function是一個函式名或者一個對匿名函式的引用。object引數指定從Object物件派生的物件。methodName制定 object引數中要呼叫的方法。interval制定對function或methodName呼叫兩次之間的時間,單位是毫秒
//每隔5秒重新整理
var i = 0;
setInterval(function(){
i++;
console.log(i);
}, 5*1000);
//例子三(function中含有引數)
function show2(str){
trace(str);
}
setInterval(show2,2000,"每隔2秒我就會顯示一次");
在使用setInterval方法時,每一次啟動都需要對setInterval方法返回的值做一個判斷,判斷是否是空值,若不是空值,則要停止定時器並將值設為空,再重新啟動,如果不進行判斷並賦值,有可能會造成計時器迴圈呼叫,在同等的時間內同時執行呼叫的程式碼,並會隨著程式碼的執行時間增加而增加,導致功能無法實現,甚至佔用過多資源而卡死奔潰。因此在每一次使用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>
//例子三(function中含有引數)
function show2(str){
trace(str);
}
setInterval(show2,2000,"每隔2秒我就會顯示一次");