setTimeout和setInterval解析,妙用setTimeout代替setInterval進行間歇呼叫
阿新 • • 發佈:2018-12-21
"在開發環境下,很少使用間歇呼叫(setInterval),原因是後一個間歇呼叫很可能在前一個間歇呼叫結束前啟動"
妙用setTimeout代替setInterval進行間歇呼叫如下
function func(){
/****執行程式碼****/
var settimeStr=setTimeout(func,1000);
if(){
clearTimeout
}//清除定時器
}
setTimeout
setTimeout函式用來指定某個函式或某段程式碼,在多少毫秒之後執行。
var timerId = setTimeout(func|code, delay),func可以自定義方法執行內容,code必須以字串形式寫入,因為定時器內部引擎封裝的eval方法,如下:
setTimeout('console.log(2)',1000);
setTimeout共有4個引數。最後那兩個引數,將在1000毫秒之後回撥函式執行時,作為回撥函式的引數,如下所示:10,10。
setTimeout(function(i,j){
console.log(a+b);
},1000,10,10);
IE 9.0以下版本,只允許setTimeout有兩個引數,同時func是屬於全域性範圍類執行
setInterval
大致同settimeout,
區別:setInterval間歇呼叫,是在前一個方法執行前,就開始計時,比如間歇時間是500ms,那麼不管那時候前一個方法是否已經執行完畢,都會把後一個方法放入執行的序列