Gzip JSON文件不解压缩怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

我有大型(30MB +)JSON文件作为file.json存储在我的服务器上。使用jQuery的getJSON(“http://site/file.json”)函数它工作得很好。但是,正如你可能认为下载30MB的JSON响应需要花费时间。

相反,我现在将它们存储为Gzip'd文件(file.json.gz),将它们降低到1MB以下!我想通过使用getJSON(“http://site/file.json.gz”)来做同样的事情,但它看起来像浏览器没有解压缩GZIP的响应,所以解析它不起作用。

那么,有没有办法让jQuery或浏览器解压缩使用GZIP压缩过的静态JSON文件,如file.json.gz?

顺便说一句:保存的文件被正确压缩。如果我手动解压他们,我得到30MB +有效的JSON文件。

提问于
用户回答回答于

不必手动在服务器上gzip文件。如果浏览器和底层的XMLHttpObject支持Accept-Encoding gzip,那么在传输之前,文件(响应)将被服务器压缩(压缩)。

但是,需要配置Web服务器(如果使用IIS,请检查其metabase.xml),以便根据传入的HTTP请求的标头对响应应用deflate。

配置帮助:

对于Apache Web服务器,请参阅:http : //httpd.apache.org/docs/2.0/mod/mod_deflate.html

对于IIS:http : //www.codinghorror.com/blog/2004/08/http-compression-and-iis-6-0.html

用户回答回答于

浏览器不会自动解压缩它们运行的​​任何压缩数据。服务器必须告诉浏览器该流只是为了传输而被压缩,并且在处理之前需要解压缩(否则根本无法下载和保存压缩存档!)需要让Web服务器发送(Content-Encoding),但在做这件事之前(Accept-Encoding标头),首先检查浏览器是否支持压缩。大多数网络服务器也可以随时为你提供gzip的东西,除非这个性能受到太大影响。

不知何故,我有这样的感觉,你会在浏览器上解析那么多的JSON比检索它更麻烦...

扫码关注云+社区