2014-04-24 77 views
3

據我所知:
- Minification會抓取您的源代碼,並替換它可以用於較短變量的代碼,刪除空白區域,進行一些代碼替換優化(有時)。
- gzip會將您的代碼重複數據刪除minification + gzip爲什麼會使文件大小小於gzip

gzip + minfication會不會相互衝突?事實證明,縮小之後事情會更難以重複數據刪除。

不知何故,儘管gzip +縮小導致文件較小。

爲什麼?

+1

關閉我的頭頂,但多次調用一個函數沒有參數是一個簡單的例子,可以被「重複」的字符串... minification將someRidiculousFunction()變成一個(),並且gzip刪除多個用一個指向它的一個實例的指針調用a()。 – PlantTheIdea

回答

3

縮小允許永久更改您的代碼。它可以例如只需使用變量名稱a替換變量名稱foobar,而不必記住如何撤消縮小,並且可以丟棄不需要的空白。但是,它不能減少浪費的空間,因爲所有字符都使用相同的長度進行編碼,或者因爲在兩個方法調用中使用了相同的參數 - 畢竟縮小版本仍然需要有效代碼。

壓縮例如使用gzip可以產生不再有效的javascript輸出。因此,gzip可以例如對不同長度的字符進行編碼,以便花括號消耗少於8位,並且可以壓縮代碼中的常見部分。但是,因爲它需要能夠恢復原始代碼,所以不能將變量重新命名爲更短的代碼。

0

這是因爲有更少的保留。

縮小還會在可能的情況下移除行結束符,括號和其他冗餘代碼。冗餘的代碼不需要壓縮。這就是爲什麼他們都不是那兩個中的一個。

相關問題