gzip javascript文件到浏览器的速度更快?
我使用的是node.js(不是socket.io,我使用的是ws和flashfallbacks),我想了解一些关于将js文件作为gzip/zip文件提供的意见。我在谷歌上搜索过,但我不确定自己是否了解得足够多。所以,在我继续使用谷歌搜索之前,我认为这是一个好主意,看看你对我的切达奶酪想法有什么看法,或许可以帮助我清除头脑中的愚蠢问题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作为脚本标记(我认为它仍然会从服务器发送到“
谢谢浏览器处理文件的方式取决于服务器在响应中提供的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
,那么浏览器的所有解码魔法都不会发生。(浏览器只需将响应保存为下载的文件。)您需要将内容类型
设置为压缩前的内容类型,并使用内容编码
标题向浏览器发出压缩内容的信号。