JavaScript作為一門(mén)解釋型語(yǔ)言,是構(gòu)建Web頁(yè)面的首選捕仔。當(dāng)以快速原型為基準(zhǔn)開(kāi)發(fā)用戶界面時(shí)匕积,解釋語(yǔ)言要優(yōu)于其他語(yǔ)言。
精簡(jiǎn)
精簡(jiǎn)是從代碼中移除不必要的字符以減小大小榜跌,進(jìn)而改善加載時(shí)間的實(shí)踐闪唆。在代碼被精簡(jiǎn)后,所有的注釋以及不必要的空白字符(空格钓葫,換行和制表符)都將被移除悄蕾。
對(duì)JavaScript而言,這可以改善響應(yīng)時(shí)間效率(要下載的文件大小減小了)础浮。
混淆
混淆是可以應(yīng)用在源代碼上的另一種優(yōu)化方式(移除注釋和空白還有改寫(xiě)代碼)帆调。
這樣做為了增加對(duì)代碼進(jìn)行方向工程的難度,但這對(duì)提高性能有幫助(比精簡(jiǎn)更能減小代碼的大卸雇)番刊。
精簡(jiǎn)是一個(gè)安全且簡(jiǎn)單的過(guò)程∮崭妫混淆更為復(fù)雜一些撵枢。
混淆JavaScript有以下三個(gè)主要缺點(diǎn):
1.缺陷:混淆復(fù)雜容易引入錯(cuò)誤。
2.維護(hù):對(duì)不能改變的符號(hào)標(biāo)記(避免混淆改變JavaScript符號(hào))精居。
3.調(diào)試:經(jīng)過(guò)混淆的代碼難閱讀帶來(lái)調(diào)試的問(wèn)題。
精簡(jiǎn)和壓縮
只需要精簡(jiǎn)其JavaScript代碼就可以避免混淆可能引發(fā)的問(wèn)題潜必。
結(jié)合使用gzip壓縮后靴姿,精簡(jiǎn)和混淆之間的差距將會(huì)減小。
精簡(jiǎn)腳本可以降低響應(yīng)時(shí)間磁滚,但不會(huì)帶來(lái)混淆的風(fēng)險(xiǎn)佛吓。
精簡(jiǎn)內(nèi)斂腳本比精簡(jiǎn)外部腳本要容易。
gzip壓縮產(chǎn)生的影響最大垂攘,但精簡(jiǎn)能夠進(jìn)一步減小文件大小维雇。隨著JavaScript的使用量和大小的不斷增長(zhǎng),精簡(jiǎn)JavaScript代碼能夠得到更多的節(jié)省晒他。
精簡(jiǎn)CSS能夠帶來(lái)的節(jié)省通常要小于精簡(jiǎn)JavaScript吱型,因?yàn)橥ǔSS中的注釋和空白比JavaScript少。最大的潛在節(jié)省來(lái)自于優(yōu)化CSS(合并同樣的類(lèi)陨仅,移除不使用的類(lèi)等)津滞。最佳的解決方案還是移除注釋和空白铝侵,并進(jìn)行一些直觀的優(yōu)化(使用縮寫(xiě)和移除不必要的字符串)