欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js超時調(diào)用setTimeout和間歇調(diào)用setInterval實例分析

 更新時間:2015年01月28日 11:35:18   投稿:shichen2014  
這篇文章主要介紹了js超時調(diào)用setTimeout和間歇調(diào)用setInterval,以實例形式對比分析了setTimeout與setInterval的具體使用技巧,非常具有實用價值,需要的朋友可以參考下

本文實例分析了js超時調(diào)用setTimeout和間歇調(diào)用setInterval的用法。分享給大家供大家參考。具體如下:

今天看了javascript高級程序設(shè)計(第三版)一書,發(fā)現(xiàn)說setTimeout比setInterval更好,覺得的確如此。平時都是用setInterval多點,現(xiàn)在還是轉(zhuǎn)一下思路了。又學(xué)習(xí)到了。分析如下:

setTimeout包含兩個參數(shù),第一個參數(shù)是要執(zhí)行的代碼,第二個參數(shù)是時間。
第一個參數(shù)可以是字符串也可以是函數(shù),但是推薦使用函數(shù)而不是字符串。
使用字符串相當(dāng)于eval方法。導(dǎo)致性能損失。

clearTimeout()

超時調(diào)用的代碼都是在全局作用域中執(zhí)行的,因此函數(shù)中this的值在費(fèi)嚴(yán)格模式下指向window對象,在嚴(yán)格模式下是undefined

復(fù)制代碼 代碼如下:
//setInval

var num = 0;
var max = 10;
var intervalId = null;

function incrementNumber(){
   num++;
   if(num == max){
      clearInterval(innervalId);
      alert('done');
   }
}

intervalId = setInterval(incrementNumber(),500);

//setTimeout 實現(xiàn)相同功能

var num = 0;
var max = 10;
function incrementNumber2(){
   num++;
   if(num < max){
      setTimeout(incrementNumber2,500);
   }else{
      alert('done');
   }
}
setTimeout(incrementNumber2,500);

以上對比可以發(fā)現(xiàn),使用超時調(diào)用時,沒有必要跟蹤超時調(diào)用id,因為每次執(zhí)行代碼之后,如果不再設(shè)置另一次超時調(diào)用,調(diào)用就會自行停止。

一般認(rèn)為,如果超時調(diào)用用來模擬間歇調(diào)用的是一種最佳模式。

在開發(fā)環(huán)境下,很少真正的間歇調(diào)用,原因是后一個間歇調(diào)用可能會在前一個間隙調(diào)用結(jié)束之前啟動。

最好不要使用間歇調(diào)用。

希望本文所述對大家的javascript程序設(shè)計有所幫助。

相關(guān)文章

最新評論