在Yahoo! UI Compressor,Dean Edwards Packer和jsmin之間,這產生了更好的結果,無論是在產生足跡還是在混淆時更少的錯誤。哪個JavaScript縮小庫會產生更好的結果?
回答
更好的是有點主觀的在這裏,因爲有多個因素的考慮(甚至超出你列出):
- 壓縮後的大小並不能說明整個故事,因爲一個積極的壓縮可能會導致更慢由於在瀏覽器解釋之前運行拆包代碼所需的額外時間,因此運行時性能較差。
- 當您控制輸入代碼時,錯誤是最容易避免的 - 明智地使用分號會很長。在您的代碼上運行JSLint,並修復報告的任何問題。
- 當然,代碼本身的樣式和大小會影響結果。
- 最後,值得注意的是,儘管一些代碼壓縮工具將更有效地與gzip結合,但服務器端gzip壓縮總是會導致比任何代碼壓縮更小的下載。
我的建議是成果的基礎上運行,你打算通過幾個壓縮機(自動化比較工具如CompressorRater幫助...)壓縮碼,並選擇 - 記憶測試,輪廓和比較之後的實際頁面加載時間。
作爲Mootools的用戶,我注意到Mootools已經通過YUI Compressor替換了Dean Edwards的Packer。我還記得有一次關於Ajaxian.com的討論,Julien(Compressor作者)指出YUI壓縮機做得更好的地方。我使用Compressor並從未見過任何問題,但我從來沒有研究過在混淆時哪些產生更少的錯誤。
YUI Compressor比Packer壓縮更安全,更緊湊。我相信Packer需要完美的JavaScript,否則在腳本加載時會導致JavaScript錯誤。不管怎樣,無論您使用哪種方式,都可以通過Gzip文件獲得最大的性能提升。
比較最好的壓縮機的好方法是Arthur Blake的The JavaScript CompressorRater。
你通常感興趣的是用GZIP壓縮後的大小(你應該配置你的web服務器來執行壓縮)。
最好的結果通常是從YUI Compressor或Dojo ShrinkSafe。差異非常小,過了一段時間我停止了比較,我只使用YUI壓縮機。
編輯: 自從這個問題被問到最初的時候,2個新的minifiers已被釋放。它們通常至少與YUI壓縮機一樣好,甚至更好。
- Google's Closure Compiler。包括有時適用的積極的advanced optimization模式。
- 微軟的Ajax Minifier(搜索this page爲 「minifier」)
編輯2:
- UglifyJS,由jQuery開發團隊的官方1.5版本選擇
Codeplex上還有一個端口YUICompress for .NET(其中包括用於TFS的構建任務)。
這是一個老問題,而Google Closure Compiler則不存在。我還沒用過,但看起來真的是不錯。
完全披露,我背後:http://www.toptensoftware.com/minime它做縮小,混淆和一套合理的皮棉風格檢查。目前它的產量比Yui小,不如Closure。
- 1. 爲什麼JavaScript中的parseFloat()會產生consisant但會產生單元結果?
- 2. 哪個結構更好? - PHP HTTP庫
- 3. 哪種方法會產生更好的性能?
- 4. 加入一個生產更多結果
- 5. JavaScript十進制縮減產生不正確的結果
- 6. MySql數據庫設計 - 哪個表結構會更好?
- 7. Google Vision OCR:DOCUMENT_TEXT_DETECTION在TEXT_DETECTION很好時會產生奇怪的結果
- 8. 更好地瞭解JavaScript的產生
- 9. 更嚴格的查詢會產生更多結果?
- 10. Java 8 JPA存儲庫流產生兩個(或更多)結果?
- 11. NSComparisonResult不會產生正確的結果
- 12. OpenGL不會產生預期的結果
- 13. Math.Atan2會產生奇怪的結果嗎?
- 14. 爲什麼在Javascript中添加兩位小數會產生錯誤的結果?
- 15. 哪個查詢會更好?
- 16. 哪個CMS會更好用?
- 17. 哪一個在SquishIt和Combres2之間有更好的縮小?
- 18. 更好地結合&縮小JavaScript或使用Google CDN?
- 19. 這些Javascript函數爲什麼會產生不同的結果?
- 20. C小端,但產生大端結果?
- 21. 縮減大小Extjs4生產
- 22. jQuery`hasClass()`不會產生任何結果
- 23. 上傳不會產生任何結果
- 24. 敲除映射不會產生結果
- 25. 刮板不會產生任何結果
- 26. PHP eval不會產生預期結果
- 27. Uri.TryCreate不會產生結果,我預計
- 28. Mongoose不會產生findeOne結果co
- 29. MongoDB JavaScript產生大量結果
- 30. 哪個地圖縮小性能更好?Hbase還是Cassandra?
這通常是一個不錯的主意,可以調整性能並查看效果,但對於JSMin,Dojo ShrinkSafe和YUI Compressor,它們只會減小文件大小(替換符號,刪除死代碼) - 它們不會修改行爲。 Dean Edward的包裝工確實增加了處理時間。 – orip 2008-12-12 00:03:52