
168
|
第十章
YUI Compressor 除了會移除所有的空白字元,還會縮短區域變數的名稱,省下更多
字元數:
function per(b,a){return((b/a)*100)};
由於 YUI Compressor 會解譯 JavaScript 程式碼,因此當它在置換程式裡的變數名稱時,
不會讓程式發生錯誤。但它也非萬能,有時也會遇到它看不懂的程式碼,這時它就會識
相的保留程式碼的原貌,不去更動。這種情形最常發生在使用
eval()
或
with()
敘述句
的時候。如果它看到這兩種敘述句出現在程式裡面,就不會去置換裡面的變數名稱。此
外,
eval()
和
with()
都可能會導致程式的效能低落—因為瀏覽器的 JIT 編譯器也會面
臨相同的問題。因此建議最好別使用這兩組敘述句。
如果想要用 YUI Compressor,最簡單的做法就是下載編譯過的可執行檔(
http://
yuilibrary.com/downloads/#yuicompressor
),這是一支 Java 程式,需要透過下列這行指令
來執行:
java -jar yuicompressor-x.y.z.jar foo.js > foo.min.js
在部署程式時,可以利用一些程式來自動化精簡程式碼的流程。像 Sprockets(
http://
getsprockets.org
)或 Less(
http://lesscss.org
)這類的函式庫就能用來開發這類程式。此
外,有些以 YUI Compressor 為基礎開發的介面函式庫,也能達到相同的目的 ...