|
1. 除去JavaScript注釋
除了注釋,其他所有的 // or /* */ 注釋都可以安全刪除,因為它們對于最終使用者來說沒有任何意義。
2. 除去JavaScript中的空白區(qū)域
如:x = x + 1; 可以簡短得寫成:x=x+1; 。
3. 進行代碼優(yōu)化
簡單的方法如除去暗示的(implied)分號,某些情形下的變量聲明或者空回車語句都可以進一步減少腳本代碼。一些簡略的表達方式也會產(chǎn)生很好的優(yōu)化,例如:
x=x+1;
可以寫成:
x++;
不過得小心謹慎,不然代碼很容易出錯。
4. 重命名用戶自定義的變量和函數(shù)
為了閱讀方便,我們都知道在腳本中應(yīng)該使用象sumTotal
這樣的變量而不是s
。不過,考慮到下載的速度,sumTotal
這個變量就顯得冗長了。這個長度對于最終使用者來說沒有意義,但對瀏覽器下載則是個負擔。這個時候s
就成為較好的選擇了。先寫好方便閱讀的代碼,然后再使用一些工具來處理以供交付。這種處理方式在這里再一次展示了其價值所在。將所有的名稱都重新用一個或兩個字母來命名將帶來顯著的改善。
5. 改寫內(nèi)建(built-in)對象
長長用戶變量名會造成JavaScript代碼過長,除此之外,內(nèi)建(built-in)對象(比如Window、Document、Navigator等)也是原因之一。例如:
alert(window.navigator.appName);
alert(window.navigator.appVersion);
alert(window.navigator.userAgent);
可以改寫成如下簡短的代碼:
w=window;n=w.navigator;a=alert;
a(n.appName);
a(n.appVersion);
a(n.userAgent);
如果這幾個對象使用頻繁的話,這樣改寫帶來的好處就不言而喻了。事實上這些對象也的確經(jīng)常被調(diào)用。然而我要提醒的是,如果Window或 Navigator對象僅僅被使用了一次的話,這樣的替換反而使代碼變得更長。這個技巧帶來一個對象更名后腳本執(zhí)行效率的問題:除了代碼長短上帶來的好處,這種改寫更名實際上還會稍微的提高一點腳本執(zhí)行的速度,因為這些對象將會被放在所有被調(diào)用對象中比較靠前的位置。JavaScript游戲開發(fā)程序員使用這個技巧已經(jīng)有多年了,下載和執(zhí)行速度都會有所提高,并且對本地瀏覽器的內(nèi)存花銷也會降低,可謂一石三鳥。
6. 重構(gòu)<script>和<style> 調(diào)用方式來優(yōu)化請求次數(shù)
我們常常在一個HTML文件頭中看到這樣標記代碼:
<script src="/scripts/rollovers.js"></script>
<script src="/scripts/validation.js"></script>
<script src="/scripts/tracking.js"></script>
大多數(shù)情況下,上述代碼應(yīng)該被簡化成:
<script src="/0/g.js"></script>
其中g(shù).js包含了所有供全局使用的函數(shù)。雖然把腳本文件分成三份對于維護來說是有道理的,但對于代碼的傳輸則沒有意義。單個的腳本下載要比三個分離的請求高效的多,并且這也同時簡化了markup代碼的長度。
7. 合并你的Javascript文件
盡可能的減少HTTP的Request請求數(shù)。
8. 將腳本放到網(wǎng)頁底部
腳本一般是用來于用戶交互的。所以如果頁面還沒有出來,用戶連頁面都不知道什么樣子,那談交互簡直就是扯談。所以,腳本和CSS正好相反,腳本應(yīng)該放在頁面的底部。
php技術(shù):JS 網(wǎng)站性能優(yōu)化筆記,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。