jQuery min包的製作方法,壓縮javascript的方法比對和方案

來源:互聯網
上載者:User
這兩天想用pack後的javascript為朋友們整理出用於搶購的程式,於是想弄一個跟jQuery min包一樣的pack方法,加快載入時間,當然主要是好奇。在上網轉了一圈,全都是一模一樣的抄襲文章,也分不出來哪個是原創,以後搜尋引擎得有搜原創的能力,不然原作者太受打擊了。
對於該問題還真沒有合適的答案,給的連結是死鏈,國外的網站也都是無關痛癢的描述。從CSDN上下了一堆工具,沒一個好使的。當然,最終我還是弄明白了,具體如下。
Javascript是指令碼語言,如果弄的離譜,會讓解譯器認不出來,所以不論是加密還是壓縮還是混淆,最後的結果還要讓解析器理解。總結起來,原始的Javascript有如下變換,

 

  • 加密:微軟有一個控制項,可以將javascript加密,加密後真的是一點都無法閱讀,在啟動並執行時候需要再用這個控制項解密。加解密的過程是可逆的,所以有些基礎的人還是可以破解的。此外,這個控制項在瀏覽器裡運行時會報安全警告,而且只適用於IE,所以用處不大。
  • 加殼:有些工具可以將js檔案打包成exe,在運行時類似於以cscript/wscript運行,這樣的方法是在網頁裡行不通的。
  • 去冗:將javascript中的注釋、換行、沒用的Null 字元都去掉,這樣的做法沒什麼技術含量,如果沒注釋,用編輯器就可以做。
  • 重整:利用javascript的eval函數以及Regex將源檔案重整,這個過程也是可逆的,重整後的檔案只能對付菜鳥,而且會影響載入效率。
  • 壓縮:這個是重點了,大家看一下jQuery的min包,主體部分除了經過去冗處理,函數內部的變數也被替換了,這樣可以在不考慮閱讀的情況下,最大程度減少檔案長度。這個過程也是很有技術含量的,因為不能修改全域變數,否則壓縮後的檔案可能無法使用。具體實現方法在網上似乎傳了很多,其實目前只有一個,就是yuicompressor,我特意在jQuery的SVN上看了一下,在build目錄裡可以找到這個包,目前的版本是2.4.2。

所以,如果你想要壓縮javascript,或跟我一樣只是好奇的話,可以弄一個yuicompressor來玩玩,我特意用jQuery.js試了一下,處理過的檔案和jQuery.min.js一模一樣。

 

原文地址不詳

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.