色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JS 網(wǎng)站性能優(yōu)化筆記

1. 除去JavaScript注釋

除了注釋,其他所有的 // or /* */ 注釋都可以安全刪除,因?yàn)樗鼈儗?duì)于最終使用者來說沒有任何意義。

2. 除去JavaScript中的空白區(qū)域

如:x = x + 1;  可以簡短得寫成:x=x+1;  。

3. 進(jìn)行代碼優(yōu)化

簡單的方法如除去暗示的(implied)分號(hào),某些情形下的變量聲明或者空回車語句都可以進(jìn)一步減少腳本代碼。一些簡略的表達(dá)方式也會(huì)產(chǎn)生很好的優(yōu)化,例如:

x=x+1;

可以寫成:

x++;

不過得小心謹(jǐn)慎,不然代碼很容易出錯(cuò)。

4. 重命名用戶自定義的變量和函數(shù)

為了閱讀方便,我們都知道在腳本中應(yīng)該使用象sumTotal這樣的變量而不是s。不過,考慮到下載的速度,sumTotal這個(gè)變量就顯得冗長了。這個(gè)長度對(duì)于最終使用者來說沒有意義,但對(duì)瀏覽器下載則是個(gè)負(fù)擔(dān)。這個(gè)時(shí)候s就成為較好的選擇了。先寫好方便閱讀的代碼,然后再使用一些工具來處理以供交付。這種處理方式在這里再一次展示了其價(jià)值所在。將所有的名稱都重新用一個(gè)或兩個(gè)字母來命名將帶來顯著的改善。

5. 改寫內(nèi)建(built-in)對(duì)象

長長用戶變量名會(huì)造成JavaScript代碼過長,除此之外,內(nèi)建(built-in)對(duì)象(比如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);

如果這幾個(gè)對(duì)象使用頻繁的話,這樣改寫帶來的好處就不言而喻了。事實(shí)上這些對(duì)象也的確經(jīng)常被調(diào)用。然而我要提醒的是,如果Window或 Navigator對(duì)象僅僅被使用了一次的話,這樣的替換反而使代碼變得更長。這個(gè)技巧帶來一個(gè)對(duì)象更名后腳本執(zhí)行效率的問題:除了代碼長短上帶來的好處,這種改寫更名實(shí)際上還會(huì)稍微的提高一點(diǎn)腳本執(zhí)行的速度,因?yàn)檫@些對(duì)象將會(huì)被放在所有被調(diào)用對(duì)象中比較靠前的位置。JavaScript游戲開發(fā)程序員使用這個(gè)技巧已經(jīng)有多年了,下載和執(zhí)行速度都會(huì)有所提高,并且對(duì)本地瀏覽器的內(nèi)存花銷也會(huì)降低,可謂一石三鳥。

6. 重構(gòu)<script>和<style> 調(diào)用方式來優(yōu)化請(qǐng)求次數(shù)

我們常常在一個(gè)HTML文件頭中看到這樣標(biāo)記代碼:

<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ù)。雖然把腳本文件分成三份對(duì)于維護(hù)來說是有道理的,但對(duì)于代碼的傳輸則沒有意義。單個(gè)的腳本下載要比三個(gè)分離的請(qǐng)求高效的多,并且這也同時(shí)簡化了markup代碼的長度。

7. 合并你的Javascript文件

盡可能的減少HTTP的Request請(qǐng)求數(shù)。

8. 將腳本放到網(wǎng)頁底部

    腳本一般是用來于用戶交互的。所以如果頁面還沒有出來,用戶連頁面都不知道什么樣子,那談交互簡直就是扯談。所以,腳本和CSS正好相反,腳本應(yīng)該放在頁面的底部。

    php技術(shù)JS 網(wǎng)站性能優(yōu)化筆記,轉(zhuǎn)載需保留來源!

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

    主站蜘蛛池模板: 县级市| 霍林郭勒市| 类乌齐县| 瑞金市| 西安市| 苏尼特左旗| 合作市| 清涧县| 长寿区| 德令哈市| 舒兰市| 平陆县| 怀远县| 峨边| 南投县| 色达县| 临武县| 峨边| 阳谷县| 湟中县| 内黄县| 乡宁县| 德兴市| 通城县| 育儿| 怀来县| 桦川县| 洛隆县| 新竹市| 孟连| 景宁| 剑河县| 固始县| 宜都市| 抚松县| 宁明县| 吉安市| 马尔康县| 泽州县| 仁寿县| 大城县|