關於js中兩種定時器的設置及清除

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

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

window.setInterval([function],[interval]) 設置一個定時器,而且設定了一個等待的時間[interval],當到達時間後,執行對應的方法[function],當方法執行完成,定時器並無中止,之後每隔[interval]這麼長的時間都會從新的執行對應的方法[function],直到咱們手動清除定時器爲止;

二、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清除掉了,可是號仍是繼續日後排的;
 

三、清除定時器:

window.clearInterval(timer1)/window.clearTimeout(time1);兩種清除方式均可以清除經過setTimeout和setInterval設置的定時器(兩種方式在設置定時器的時候有區別,清除定時器的時候沒有區別),而且參數不只能夠是timer,還能夠是其返回值,例如1,2;須要注意的是,定時器即便清除了,其返回值也不會清除,以後設置的定時器的返回值也會在其返回值的基礎上繼續向後排,這點相似於銀行的排隊領號,即便1號的業務辦理完了,後邊的人還是從2號開始繼續領號,而不是從新從1開始;spa

相關文章
相關標籤/搜索