IIS启用GZip压缩JS等extjs静态文件

来源:互联网 发布:laravel获取表单数据 编辑:程序博客网 时间:2024/06/05 16:58

IIS启用GZip压缩JS/CSS等静态文件

采用EXT作为前端框架后,一个缺点就是extjs类库文件比较大,超过1M,在内网应用问题不突出,在外网使用,首次加载要8~20秒,有时网速不好,加载就更慢了,让用户第一体验就不好,为了解决这个问题,我在项目中采用两种方法,一是在前端增加一个加载进度条,二是设置IIS,开启GZIP压缩功能,可以减少传输量一半以上,大大加快加载速度.以下是开启IIS的GZIP方法:

IIS启用Gzip默认只压缩后缀是htmhtml的文件,而且对经常用到的jscss无效。
  以前没有注意这个问题,在通过在线工具 gtmetrix.com检测时才发现jscss并没用被压缩。
  那么如何才能让GZip压缩JS/css呢?这需要做进一步的设置。
1、在Web服务扩展项右键,选择添加一个新的Web服务扩展,添加文件,C:\WINDOWS\system32\inetsrv\gzip.dll选中设置扩展状态为允许。

网站mime类型增加 .js   application/x-javascript

2、用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),
  找到Location =”/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩,
  找到Location =”/LM/W3SVC/Filters/Compression/deflate”用于设置deflate压缩。
  更改后的设置如下:
<IIsCompressionScheme Location=”/LM/W3SVC/Filters/Compression/deflate”
HcCompressionDll=”%windir%\system32\inetsrv\gzip.dll”
HcCreateFlags=”0″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”true”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
txt
js
css
swf
xml”
HcOnDemandCompLevel=”9″
HcPriority=”1″
HcScriptFileExtensions=”ASP
ASPx
dll
exe”
</IIsCompressionScheme>
<IIsCompressionScheme Location=”/LM/W3SVC/Filters/Compression/gzip”
HcCompressionDll=”%windir%\system32\inetsrv\gzip.dll”
HcCreateFlags=”1″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”true”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
txt
js
css
swf
xml”
HcOnDemandCompLevel=”9″
HcPriority=”1″
HcScriptFileExtensions=”ASP
ASPx
dll
exe”
>
</IIsCompressionScheme>
3、保存文件时,会提示你,当前文件正在使用,不能修改。
4、打开windows服务,找到”IIS Admin Service”,停止服务,会提示有两个服务依赖于该服务,一个是Http ssl,一个是World Wide Web Publishing Service,别怕,把这两个服务一起停止。
5、保存修改的文件,这里应该能顺利保存。
6、将刚才停止的三个服务Http sslWorld Wide Web Publishing ServiceIIS Admin Service分别启动起来。
7、重新启动IIS

 

以下是约2.5M的首页共131个文件 通过国外网站访问测试报告

从报告中看到,实际需时15.54秒(国内访问4~10秒,内网更快2~4秒),实际下载量1.58M压缩率还是不错的

当然,在浏览器的缓存作用下,并不是每次都需要下载更新所有文件.

1 0
原创粉丝点击