2008年12月9日 星期二

JavaScript的程式碼優化

Web瀏覽器下載的是JavaScript的所有源碼,因此所有長變量名和註釋都回包含在內。如果文件過大,顯然會導致下載時間增加間。
1160是一個TCP-IP包中的字節數。最好能將每個javascript文件都保持在1160字節以下,以獲得最優的下載時間。
由於這個原因,我們必須要刪除註釋、刪除製表符和空格、刪除所有的換行、將長變量名縮短。
遵循這4條比較困難。因此我們需要用外部程序(ECMAScript Cruncher)來幫助我們。
下面我們看編寫JavaScript程序時,減少字節數的方法:

1,true和false.
因為在javascript語言中 true等於1,false等於0。因此,腳本包含的字面變量true都可以用1來替換,而false可以用0來替換。
例如:
程序程式碼程序程式碼
var bFound = false;
for(var i=0;i<>
if(aTest[i]==vTest){
bFounde = true;
}
}

以上程式碼可以改寫成:
程序程式碼程序程式碼
var bFound = 0;
for(var i=0;i<>
if(aTest[i]==vTest){
bFounde = 1;
}
}

這兩段程式碼運行方式完全相同,而後者節省了7個字節。(以前在某篇文章上看過一句話,說做一個小氣的程序員。果然體現的是淋漓盡致啊。)


2,縮短否定檢測 ..
程式碼中常常會出現檢測某個值是否滿足條件。而大部分作的判斷某個變量是否為undefined 、null 、false。可以用邏輯非來簡化判斷。
例如:
程序程式碼程序程式碼
if(oTest != undefined){
//do someting
}
if(oTest != null){
//do someting
}
if(oTest != false){
//do someting
}

那麼,你可以直接替換成:
程序程式碼程序程式碼
if(!oTest){
//do something
}

為什麼可以替換呢?因為邏輯非操作在遇到undefined 、null 、false時返回true這樣做可以節省很多字節。

3.定義數組、對象時候的技巧

程序程式碼程序程式碼
var oTest = new Array;
var oTest = [];

是等價的。
程序程式碼程序程式碼

var oTest = new Object;
var oTest = {};

【下列文章您可能也有興趣】

2 則留言:

Jax 提到...

關於 true,false 最好還是不要用 1,0 取代
在執行上效率會差很多

千江有水千江月 提到...

嗯~
這建議收下了~ 這部份到沒實際去run過.
謝謝你的提醒.