JS中2種定時器的使用及清除的實現
一、什麼是定時器?
定時器就是由JS提供瞭一些原生方法來實現延時去執行某一段代碼。
二、定時器的分類
1、一次性定時器:
setTimeout: 設置一個定時器,在定時器到期後執行一次函數或代碼段
使用方法:var timer=setTimeout(fun,毫秒數)
清除的方法:clearTimeout(timeoutId)
//一次性 var timeoutId = window.setTimeout(fun[, delay, param1, param2, ...]); var timeoutId = window.setTimeout(code[, delay]); //timeoutId: 定時器ID //fun: 延遲後執行的函數 //code: 延遲後執行的代碼字符串,不推薦使用原理類似eval() //delay: 延遲的時間(單位:毫秒),默認值為0 //param1,param2: 向延遲函數傳遞而外的參數,IE9以上支持
2、周期性定時器:
setInterval: 以固定的時間間隔重復調用一個函數或者代碼段
使用方法:var timer=setInterval(fun,毫秒數)
清除的方法:clearInterval(timer)
//周期性 var intervalId = window.setInterval(fun, delay[, param1, param2, ...]); var intervalId = window.setInterval(code, delay); //intervalId: 重復操作的ID //func: 延遲調用的函數 //code: 代碼段 //delay: 延遲時間,沒有默認值
三、清除定時器
由於定時器在調用時,都會返回一個整形的數字,該數字代表定時器的序號,即第多少個定時器,所以定時器的清除要借助於這個返回的數字。
要清除定時器,就必須在用定時器的時候,定義一個變量來記錄定時器的返回值。如下:
//setTimeout 1000ms後執行1次 var test1 = setTimeout(function(){ //your codes },1000); //setInterval 每隔1000ms執行一次 var test2 = setInterval(function(){ //your codes },1000) //清除Timeout的定時器,傳入變量名(創建Timeout定時器時定義的變量名) clearTimeout(test1); //清除Interval的定時器,傳入變量名(創建Interval定時器時定義的變量名) clearInterval(test2);
註:有時候在寫的時候,還會習慣將清空的定時器的變量置空,這樣寫既可以釋放內存,也可以便於後邊代碼的判斷。
到此這篇關於JS中2種定時器的使用及清除的實現的文章就介紹到這瞭,更多相關JS 定時器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳解JavaScript的定時器
- JavaScript 定時器詳情
- JavaScript定時器類型總結
- javascript的setTimeout()使用方法總結
- JavaScript防抖動與節流處理