2012-09-14 92 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没有通过,我会立即解压缩。 –