今天又是搞优化的一天,在苦闁了一上午之后,终于有了点收获
打开IIS站点的GZIP压缩功能
- 首先,进入IIS,在“web服务扩展”-> “添加一个新的Web服务扩展”->“要求的文件”输入c:\WINDOWS\system32\inetsrv\gzip.dll;并将“设置扩展状态为允许勾上;
- 然后,在“网站”上右击“属性”->“服务”->”HTTP压缩“,勾上”压缩应用程序文件“和”压缩静态文件“,注意给留一个放压缩文件的文件夹(默认的是在系统目录下,可能不好;最好改了)
- 最后,在c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到 IIsCompressionScheme,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。 HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。还有HcFileExtensions,HcScriptFileExtensions是压缩的文件类型。下面是我改的结果:
代码
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
js
css"
HcScriptFileExtensions="asp
dll
exe
aspx"
HcFileExtensions="htm
html
txt
js
css"
HcScriptFileExtensions="asp
dll
exe
aspx"
好了。下面让我来测试一下吧:
一、 带有压缩的4个访问计时截图:
说明:
- 12.242 - 第一次访问计时;
(这次访问之前,清里的缓冲;回收了进程。运行之后,在”IIS Temporary Compressed Files“目录下多了一个”$^_gzip_D^WEB^SKIN^SKIN1^LOGIN.CSS“的文件,大小为2K(站点中的未压缩的文件是3K); - 0.308 - 在第1步操作上,直接刷新计时结果;(应该直接使用了”IIS Temporary Compressed Files“目录下的压缩文件,效果显现了);
- 0.454 - 新打开一个IE窗口,直接访问计时结果;(新开窗口会重新分配缓冲cookie等,所以时间变长了);
- 0.268 - 在第3步操作上,直接刷新的计时结果;(刷新后,会更快)
二、不带压缩的还是这个页面的访问计时截图:
说明:
- 8.643 - 第一次访问计时;(这次访问之前,清里的缓冲;回收了进程,看来没有压缩时,会在第一次运行时快一些);
- 0.403 - 在第1步操作上,直接刷新计时结果;(但是没有压缩的页面,在刷新时,会变慢。原来0.3秒,现在0.4秒);
- 0.458 - 新打开一个IE窗口,直接访问计时结果;(新开窗口时,变化和压缩没有什么差别);
- 0.314 - 在第3步操作上,直接刷新的计时结果;(再次刷新,还是比压缩了的站点慢)
三、上面只是测试了一个登录Login.aspx页面。登录后进入主页,访问了大量的JS/CSS/HTML/ASPX等,压缩后的效果更明显了:
OK,今天就到这里了,休息...休息一会儿.....
附:
部分压缩后的文件大小对比:
文件 原大小 压缩缓冲后大小
^JQUERY.JS 59K 19K
^SCRIPT.JS 10K 3K
^CALENDARSELECTOR.JS 31K 7K