2011-05-25 27 views
3

通常,如果明文被壓縮,則必須有解壓程序。 js引擎如何解釋縮小壓縮的js腳本?javascript引擎如何理解縮小的JS腳本?

js引擎是否有內置的排除算法?

+0

縮小隻是簡化變量名稱,儘可能地消除空白,取消註釋等等......任何可以使JS更小,但仍然在語法上有效的東西。基本上它會把'var this_is_a_really_long_useless_var_name = 0;'並將其變成'var x = 0;' – 2011-05-25 18:30:28

回答

4

首先,你要明白,有微小的差異和壓縮。

1.微小不壓縮

縮小是減少JavaScript以儘可能少的字節儘可能的過程中,通過去除多餘的空白區域,改變變量名較短的,等等的編碼和的字符文件保持不變。由於縮小文件實際上並未改變編碼或功能,因此沒有必要將文件轉換回來,因爲沒有真正改變。如果壓縮文件,使用gzip,則重新編碼的文件的數據或流分成不同的編碼,佔用較少的空間說

2.壓縮更改文件

。在這種情況下,需要解壓縮例程來將文件轉換回其未壓縮狀態。未壓縮時,文件返回到其原始狀態。

3.瀏覽器使用壓縮和縮小的組合來實現儘可能小的帶寬佔用空間。

縮小和壓縮的好處在於它們是兩個獨立的進程,它們可以做兩件獨立的事情,它們可以組合起來,儘可能地將小文件傳遞給瀏覽器。例如,原來的jQuery源碼現在已經超過了200K,但是通過minifcation和傳遞壓縮的文件,它只需要約30K的帶寬傳遞給瀏覽器。

+0

非常感謝!! :) – DrStrangeLove 2011-05-25 19:01:39

6

它不需要解壓縮,縮小的代碼仍然是JavaScript,它對人類來說很難閱讀。

2

縮小的javascript仍然是javascript。把它看作是刪除空白並將長變量重命名爲更短的變量。

+0

因此,基本上,與LZW或Huffman編碼等壓縮算法相比,minification根本就不是壓縮。 – DrStrangeLove 2011-05-25 18:35:44

+0

不,它不是壓縮。它只是剝離空白和重命名變量。一些工具也有優化,請查看Closure Compiler。 – Pwnna 2011-05-25 18:36:47

1

精縮的JavaScript很簡單,同樣的代碼,但縮寫(如VAR foobar的= 2之前可能變種A = 2;)

壓縮的javascript文件(和其他靜態文件)真正的壓縮,並且確實得到解壓在引擎使用它們之前由客戶端機器執行。

瀏覽器將識別到,它可以通過一個類似於頭

的Accept-Encoding訪問壓縮內容的服務器:gzip的,放氣