Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gzip javascript文件到浏览器的速度更快?_Javascript_Node.js_File_Zip_Client - Fatal编程技术网

gzip javascript文件到浏览器的速度更快?

gzip javascript文件到浏览器的速度更快?,javascript,node.js,file,zip,client,Javascript,Node.js,File,Zip,Client,我使用的是node.js(不是socket.io,我使用的是ws和flashfallbacks),我想了解一些关于将js文件作为gzip/zip文件提供的意见。我在谷歌上搜索过,但我不确定自己是否了解得足够多。所以,在我继续使用谷歌搜索之前,我认为这是一个好主意,看看你对我的切达奶酪想法有什么看法,或许可以帮助我清除头脑中的愚蠢问题 浏览器如何处理压缩的js文件?(我认为没什么,它会把它作为zip文件下载到你的电脑上) 是否有一些东西可以解压并添加js作为脚本标记(我认为它仍然会从服务器发送到“

我使用的是node.js(不是socket.io,我使用的是ws和flashfallbacks),我想了解一些关于将js文件作为gzip/zip文件提供的意见。我在谷歌上搜索过,但我不确定自己是否了解得足够多。所以,在我继续使用谷歌搜索之前,我认为这是一个好主意,看看你对我的切达奶酪想法有什么看法,或许可以帮助我清除头脑中的愚蠢问题

  • 浏览器如何处理压缩的js文件?(我认为没什么,它会把它作为zip文件下载到你的电脑上)

  • 是否有一些东西可以解压并添加js作为脚本标记(我认为它仍然会从服务器发送到“是否要保留此文件,此文件可能会损坏您的计算机[是][否]?”)

  • 这是htaccess要做的事情还是客户端要做


  • 谢谢

    浏览器处理文件的方式取决于服务器在响应中提供的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>
    
    
    AddCharset utf-8.css
    AddCharset utf-8.js
    AddEncoding gzip.gz
    ForceType文本/javascript
    强制类型文本/css
    

    对于动态内容,服务器脚本会生成标题和响应。

    因此它会自动生成正确的标题@BenMuircroft-你可以去gzip。请注意,gzip和zip是不同的。坚持gzip(或压缩或放气)以保持兼容性。查看和。响应需要有标题;它们是通过.htaccess还是通过其他方式到达目的地并不重要。@BenMuircroft-如果脚本生成gzip内容,则脚本还会向响应添加
    内容编码:gzip
    头。每种脚本语言都有自己添加此类头的方法。@BenMuircroft-Um,Apache是HTTP服务器。Apache自己处理对静态内容的请求,您可以通过.htaccess来指导很多这方面的工作。Apache调用服务器端代码来处理对动态内容(CGI、PHP等)的请求,并将服务器端代码的输出返回给请求者。由于Apache不知道您的代码在做什么,它依赖您的代码来设置正确的头(包括
    内容类型
    ,如果适用,
    内容编码
    )。@BenMuircroft-注意,有一个MIME类型
    应用程序/x-gzip
    。如果将响应设置为具有
    内容类型:application/x-gzip
    ,那么浏览器的所有解码魔法都不会发生。(浏览器只需将响应保存为下载的文件。)您需要将
    内容类型
    设置为压缩前的内容类型,并使用
    内容编码
    标题向浏览器发出压缩内容的信号。