天天看點

JavaScript之定時器詳解

1、JS中的定時器有兩種:

   window.setTimeout([function],[interval]) 設定一個定時器,并且設定了一個等待的時間[interval],當到達時間後,執行對應的方法[function],當方法執行完成定時器停止(但是定時器還在,隻不過沒用了);

   window.setInterval([function],[interval]) 設定一個定時器,并且設定了一個等待的時間[interval],當到達時間後,執行對應的方法[function],當方法執行完成,定時器并沒有停止,以後每隔[interval]這麼長的時間都會重新的執行對應的方法[function],直到我們手動清除定時器為止;

2、JS中的定時器是有傳回值的:->傳回值是一個數字,代表目前是第幾個定時器

   var timer1=window.setTimeout(function(){},1000);  //timer1->1 目前是第一個定時器

   var timer2=window.setTimeout(function(){},1000);  //timer2->2 目前是第二個定時器

   window.clearTimeout(timer1); //->把第一個定時器清除掉,這裡也可以用

   window.clearInterval(timer1)、window.clearTimeout(1)、window.clearInterval(timer1);

   var timer3=window.setTimeout(function(){},1000);   //timer3->3 目前是第三個定時器 ,雖然上面的定時器timer1清除掉了,但是号還是繼續往後排的;

3、清除定時器:

   window.clearInterval(timer1)/window.clearTimeout(time1);兩種清除方式都可以清除通過setTimeout和setInterval設定的定時器(兩種方式在設定定時器的時候有差別,清除定時器的時候沒有差別),并且參數不僅可以是timer,還可以是其傳回值,例如1,2;需要注意的是,定時器即使清除了,其傳回值也不會清除,之後設定的定時器的傳回值也會在其傳回值的基礎上繼續向後排,這點類似于銀行的排隊領号,即使1号的業務辦理完了,後邊的人仍是從2号開始繼續領号,而不是重新從1開始;

繼續閱讀