摘要:JavaScript 壓縮
JavaScript 壓縮,這裡指的不是 gzip,是去掉註解、換行、把變數名稱改短以減少檔案大小的壓縮方式…常見的工具有 Yui compressor、Closure Compiler。
要用 Closure Compiler除了把 compiler-latest抓下來之外還要裝 這個,然後在 cmd下這個指令:「java -jar compiler.jar --js=in1.js --js_output_file=out.js」,如果有需要,可以有多個 --js,ex: --js=in1.js --js=in2.js ....唔,一個一個打感覺是個笨方法,應該可以把目錄下的 .js檔自動列出來啊~~但是我不會,所以有興趣的再自己研究XD
剛剛遇到的問題,壓縮之後不能正常運作…直接看程式碼吧。
//如果這樣寫: if (typeof data == 'string'){ eval('data = ' + data); } //closure complier結果: if(typeof g=="string"){eval("data = "+g)} //data 這個變數名稱被改寫成 g //===== //改這樣寫: if (typeof data == 'string'){ data=eval('('+data+')'); } //closure complier結果: if(typeof g=="string"){g=eval("("+g+")")} //這樣就對了
嗯…發現原因,但是我想不到怎麼跟寫出這 code的人解釋 囧a……因為變數名稱被改寫了,但是字串卻得原封不動的丟回來,所以壓縮出來的結果就錯了……相當糟糕的表達能力 orz
然後這段 code是要解析 json物件,除了 eval,還有更好的方式,看看這個吧:ejohn.org/blog/the-state-of-json/