【问题标题】:gzip javascript files to the browser faster?gzip javascript 文件到浏览器的速度更快?
【发布时间】:2014-01-09 18:53:36
【问题描述】:

我使用的是 node.js(不是 socket.io,我使用的是 ws 和 flash 后备)我想对将 js 文件作为 gzipped / zipped 文件提供一些意见。我已经用谷歌搜索了,但我不确定我知道的足够了解。所以在我继续谷歌之前,我认为最好先看看你对我的切达干酪想法有什么看法,也许可以帮助我清理大脑中的愚蠢问题。

  1. 浏览器如何处理压缩的 js 文件? (我觉得没什么,它会以 zip 文件的形式将其下载到您的计算机上)。

  2. 有没有什么东西可以解压并添加js作为脚本标签(我认为仍然会从服务器到'你想保留这个文件吗,这个文件可能会损害你的电脑[是][否] ?')

  3. 这是与 htaccess 做的事情还是客户端做的?

谢谢

【问题讨论】:

    标签: javascript node.js file zip client


    【解决方案1】:

    浏览器对文件的处理取决于服务器在响应中提供的 http 标头。例如,我们为我们的 gzip 脚本提供以下标头:

    Content-Type: text/javascript
    Content-Encoding: gzip
    

    样式表的交付方式相同,但内容类型为text/css。浏览器会自动解压缩它们,然后像​​解压缩一样处理它们。这包括 Ajax 请求。

    对于静态的 gzip 文件,我们使用 Apache 服务器上的 .htaccess 文件。以下是相关行:

    <IfModule mod_mime.c>
        AddCharset utf-8 .css
        AddCharset utf-8 .js
        AddEncoding gzip .gz
    </IfModule>
    <FilesMatch "(\.js|\.js\.gz)$">
        ForceType text/javascript
    </FilesMatch>
    <FilesMatch "(\.css|\.css\.gz)$">
        ForceType text/css
    </FilesMatch>
    

    对于动态内容,服务器脚本会生成标头以及响应。

    【讨论】:

    • 所以它是自动的,带有适当的标题!
    • @BenMuircroft - 你可以压缩它。请注意,gzip 和 zip 是不同的。坚持使用 gzip(或压缩或放气)以获得兼容性。查看Wikipedia article on HTTP compressionHTTP spec on content encoding。响应需要有标题;他们是通过 .htaccess 还是通过其他方式到达那里是无关紧要的。
    • @BenMuircroft - 如果脚本生成 gzip 压缩的内容,脚本还会在响应中添加 Content-Encoding: gzip 标头。每种脚本语言都有自己添加此类标头的方式。
    • @BenMuircroft - 嗯,Apache HTTP 服务器。 Apache 自己处理对静态内容的请求,您可以通过 .htaccess 来处理其中的大部分内容。 Apache 调用您的服务器端代码来处理对动态内容(CGI、PHP 等)的请求,并将服务器端代码的输出返回给请求者。由于 Apache 不知道您的代码在做什么,它依赖于您的代码来设置正确的标头(包括 Content-Type 和,如果适用,Content-Encoding)。
    • @BenMuircroft - 请注意,有一个 MIME 类型 application/x-gzip。如果您将响应设置为Content-Type: application/x-gzip,那么浏览器的所有这些解码魔法都不会发生。 (浏览器只会将响应保存为下载的文件。)您需要将Content-Type 设置为压缩前的内容类型,并使用Content-Encoding 标头向浏览器发出内容已压缩的信号。
    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多