我将大型(30MB+) JSON文件作为file.json存储在我的服务器上。使用jQuery的getJSON("http://site/file.json")函数可以很好地工作,但是,正如你可能认为的那样,下载30MB的JSON响应需要相当多的时间。
取而代之的是,我现在将它们存储为Gzip文件(file.json.gz),这将它们减少到略低于1MB!我也想用getJSON(“http://site/file.json.gz"”)来做同样的事情,但是看起来浏览器是而不是来解压GZIP的响应,所以解析它是不起作用的。
那么,有没有办法让jQuery或浏览器解压缩用file.json.gz等GZIP压缩过的静态JSON文件呢?
顺便说一句:保存的文件被正确压缩。如果我手动解压它们,我会得到30MB+有效的JSON文件。
发布于 2011-12-02 09:48:03
浏览器不会自动解压缩它们遇到的任何压缩数据。服务器必须告诉浏览器,流只是为了传输而压缩,在处理之前需要解压缩(否则您根本无法下载和保存压缩的归档文件!)您需要让您的web服务器发送适当的标头(Content-Encoding),但在执行此操作之前,请首先检查浏览器是否支持压缩( Accept-Encoding标头)。大多数hit服务器也可以在运行时为你压缩文件,除非这对性能的影响太大。
不知何故,我感觉在浏览器上解析这么多JSON会比检索JSON更麻烦……
发布于 2011-12-02 09:46:16
您不必手动在服务器上对文件进行gzip压缩。如果浏览器和底层XMLHttpObject支持Accept-Encoding gzip,deflate报头,则文件(响应)将在传输之前由服务器压缩(压缩)。
但是,您需要配置您的per服务器(如果使用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
发布于 2012-11-16 15:19:23
尽管有人反对这样做,但可以使用JavaScript解压缩gzipped数据。有关解决方案,请参阅this question和this question。
https://stackoverflow.com/questions/8350749
复制相似问题