久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Ajax- 完成JavaScript壓縮和模糊處理

來自站長百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航: 上一頁 | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion

我們都知道,JavaScript是一種在客戶瀏覽器中執(zhí)行的解釋型語言。換句話說,JavaScript會以明文下載到瀏覽器,再由瀏覽器根據(jù)需要執(zhí)行這個(gè)JavaScript代碼。

用戶只要使用瀏覽器的查看源代碼功能就能讀到JavaScript源代碼,該功能會顯示出頁面的完整HTML標(biāo)記,包括所有JavaScript塊。即使JavaScript源代碼放在一個(gè)外部文件中,并用script標(biāo)記的src屬性來引用,用戶也可以下載并閱讀它。由于查看頁面的人都能得到JavaScript源代碼,所以不要把專用或機(jī)密的邏輯算法放在JavaScript中。這種邏輯最好放在服務(wù)器上,在那兒會更安全一些。

在基于Ajax的應(yīng)用中,隨著JavaScript的使用越來越多,JavaScript文件的大小可能會成為問題。由于JavaScript是一種解釋型語言,因此不會編譯為機(jī)器級的二進(jìn)制碼,而對于可執(zhí)行代碼來說,二進(jìn)制碼才是更高效的存儲格式。如果JavaScript文件太多就會使應(yīng)用的速度減慢,因?yàn)樗枰劝言创a從服務(wù)器下載到瀏覽器,然后才能在瀏覽器上執(zhí)行。另外,如果使用諸如JSDoc(如前所述)的工具為此要對代碼加注釋,本來就很大的JavaScript代碼會變得更大。

你可能看到了,JavaScript缺少二進(jìn)制的可執(zhí)行包,這會帶來兩個(gè)問題:安全性差,以及需要下載大量的源代碼。有沒有辦法避開這些問題呢?

JavaScript日益普及,因此也產(chǎn)生了許多工具,這些工具有助于解決這些問題。最簡單的壓縮工具會簡單地去除JavaScript源代碼中的所有注釋和換行符,這樣可以減小下載的源代碼的大小。刪除注釋行和換行符能使JavaScript文件的大小縮小30%甚至更多,這要依具體情況而定。需要說明的是,JavaScript源代碼中的所有語句必須正確地以分號結(jié)束,只有這樣才能用這種工具對源代碼進(jìn)行壓縮。如果沒有做到這一點(diǎn),你就會接收到錯(cuò)誤或者未預(yù)料行為的消息。所以,在壓縮JavaScript源代碼之前,一定要使用JSLint確保所有語句都以分號結(jié)束!

還有一些工具則更進(jìn)一步,可以提供模糊服務(wù)。模糊(Obfuscation)是一種過程,指全面掃描源代碼,將字段和函數(shù)原來的名字改成經(jīng)編碼的無意義的名字,以防止其他人了解源代碼的含義和內(nèi)部工作。對于能編譯為機(jī)器級二進(jìn)制指令的語言來說(如C++),一般不需要這種模糊處理。即使Java和C#這樣能夠編譯為中間字節(jié)碼而不是二進(jìn)制指令的現(xiàn)代語言,也需要模糊工具來保證最大程度的安全。JavaScript作為一個(gè)完全解釋型語言同樣需要這樣一種工具。

有一個(gè)能同時(shí)提供壓縮和模糊服務(wù)的免費(fèi)工具,就是MemTronic的HTML/JavaScript Cruncher-Compressor(hometown.aol.de/_ht_a/memtronic/)。這個(gè)工具支持多個(gè)層次的JavaScript壓縮。最低層次的壓縮在這個(gè)工具中稱為擠壓(crunching),只是簡單地刪除所有注釋和換行符。這個(gè)工具的相關(guān)文檔稱,這樣可以節(jié)省20%~50%的帶寬。使用“crunch”模式,可以看到JavaScript文件的大小縮小了30%。

最高層次的壓縮在這個(gè)工具中稱為壓縮(compressing),是用一種真正的壓縮機(jī)制實(shí)際壓縮JavaScript源代碼,并向文件增加自動(dòng)解壓縮功能。這個(gè)工具的相關(guān)文檔稱,當(dāng)使用這種模式時(shí),帶寬可以節(jié)省40%~90%,而且壓縮后的輸出已經(jīng)在當(dāng)前版本的IE、Netscape、Mozilla和Opera等瀏覽器上成功通過測試。使用同一個(gè)JavaScript文件,應(yīng)用“compressing”模式和“crunch”模式進(jìn)行測試,發(fā)現(xiàn)使用“compress”模式使得文件大小的縮小幅度超過了65%(見圖5-13)。

在寫本書時(shí),MemTronic工具的文檔稱,JavaScript的模糊工具還不算完備。不過,可以看看圖5-13所示的輸出窗口,這里顯示了對JavaScript文件執(zhí)行“壓縮”操作的結(jié)果。這個(gè)輸出中包含了許多奇怪的字符,難于閱讀。盡管這可能不是真正意義上的模糊處理,但確實(shí)足以防止有不良企圖的用戶查看(甚至竊?。┠愕腏avaScript源代碼。

Image0130.jpg

圖5-13 MemTronic的 HTML/JavaScript Cruncher-Compressor可以大大縮小JavaScript源代碼的大小,并且難于讀懂