使用base62編碼JavaScript文件會減小其文件大小,但會降低性能。但是,究竟如何?JavaScript base62編碼性能影響
一旦JavaScript文件被加載,並JavaScript引擎必須unencode文件只進行一次,難道一定要unencode它在實時,作爲腳本運行?
如果該文件僅被解碼一次,它在哪裏存儲?
使用base62編碼JavaScript文件會減小其文件大小,但會降低性能。但是,究竟如何?JavaScript base62編碼性能影響
一旦JavaScript文件被加載,並JavaScript引擎必須unencode文件只進行一次,難道一定要unencode它在實時,作爲腳本運行?
如果該文件僅被解碼一次,它在哪裏存儲?
一旦JavaScript文件被加載,並JavaScript引擎必須unencode文件只進行一次,難道一定要unencode它在實時,作爲腳本運行?
每次腳本加載(所以,每頁加載一次)。
如果該文件只被解碼一次,它在哪裏存儲?
JavaScript代碼被執行,而不是存儲,並且執行的結果(可能涉及一些存儲的結構,比如函數)存在於JavaScript堆的內存中。
正如你所提到的Dean Edwards的packer,值得指出的是,他指出使用Base62編碼是only useful if you can't use gzip compression,哪一個幾乎總是可以。瀏覽器支持基本上是普遍的,服務器支持即時gzip(並在良好的服務器,預先壓縮和緩存)。
感謝您的快速回復,但是,我的意思是base62,而不是64 :) Base62編碼增加了一些開銷,所以對於非常小的文件來說它會更大,但對於真實世界的JS文件來說,它的體積會大大減少。我只用200行的JS文件測試了一下,減少了60%。 – 2013-03-05 13:13:00
@Amoguai:是的,我更新了答案(顯然,字面意思是*因爲*你在評論)。 – 2013-03-05 13:15:23
@ T.J。 Crowder我的意思是base62,如http://dean.edwards.name/packer/ Base62是一種位置表示法,所以它可以用來以非常短的版本表示很長的正常文本。 – 2013-03-05 13:08:58
@ Amoguai:啊,和你在一起。 – 2013-03-05 13:15:05
@ T.J。 Crowder哦,我明白了。謝謝你清理那個:)我要去做另一個測試。 – 2013-03-05 13:16:12