2012-09-14 121 views
2

我有一個嚴重JS基礎的項目部署到嵌入式設備。它的磁盤大小不超過16Mb。問題是我的JS縮小的文件的大小all-classes.js約爲3MB。如果我壓縮它使用gzip我得到560K文件,節省了約2.4M 。現在我想將all-classes.js作爲all-classes.js.gz存儲,這樣我就可以節省空間,並且它可以非常好地被瀏覽器解壓縮。我所要做的就是處理標題。使用壓縮JavaScript文件(不運行時間壓縮)

現在的問題是我怎麼包括.gz文件,以便瀏覽器能和解?那麼我知道一個.gz文件包含文件結構信息,而瀏覽器只接受原始gzipped數據。我希望存儲原始的壓縮數據。它會緩存一些!

+0

我認爲瀏覽器在他們接受的gzip頭髮送。然後,如果他們這樣做,並且Web服務器也這樣做,瀏覽器將獲取請求的文件,呈現它(例如php),然後將結果動態地gzip並將其全部發送回瀏覽器。所以瀏覽器會收到一個.js,但它會知道內容是gzip。也許你可以改變你的web服務器,並告訴他在響應頭文件中添加「gzipped」,但發送.js不變? 我想在其他地方播種.js文件不是一個選項。 – Zlatko

+0

它是可行的,但你必須調整標題。結賬http://joseph.randomnetworks.com/2006/07/13/compressed-javascript/ –

+0

@Ted我不能說沒有檢測到任何瀏覽器。例如Safari。旁邊的文章是6歲?它是否仍然偶然支持? –

回答

0

當請求「all-classes.js」文件時,您需要做的是將「all-classes.js.gzip」的內容與其他「Content-Encoding:gzip」HTTP標頭一起返回。 但是,如果請求包含「接受編碼:gzip」這是唯一可能在首位HTTP標頭...

+0

是的,我的計劃。事實上,它沒有接受編碼:gzip沒有通過,我會立即解壓縮。 –