对于多数Http请求来说,如果我们能让他们以压缩文件的形式提供这些资源的话,也会极大的提高效率。我们只要开启Gzip,然后就可以减少下载这些资源所占用的网络传输时间。
为了进行比较,我们先给个截图,这是没有启用Gzip的情况:
从这里可以看出,在启用Gzip之前,下载ext-all-debug.js需要2.8MB这么大的文件,需要用时1.53秒。
然后我们就配置Gzip Filter,为此需要做2个步骤:
(1)在$LIFERAY_HOME/portal-ext.properties文件中启用GzipFilter的功能如下:
(2)在$TOMCAT_HOME/conf/server.xml中,因为我们要测试的页面部署在8080端口上,所以我们找到8080端口的连接器(Connector),然后启用gzip ,具体就是加入以下参数:
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/png,image/jpg"/>
这里我们可以很明显的看出来,我们启用了compression,然后我们定义了需要压缩的资源类型,用compressableMimeType属性,所以这里所有我们能想到的前端资源都在这个类型列表中。
最后,我们打开Firebug进行再次测试,作为结果的比较,果然性能提升很大:
从这我们不难看出,现在的Resource Header中 Content-Encoding被设置成了gzip,所以这表示我们的gzip的功能已经被正确的开启,然后我们发现ext-all-debug.js的尺寸从2.8MB缩小成了只有550KB,而且网络的传输时间从1.53秒缩短到了906毫秒,几乎减少了40%的下载时间,其他的资源也都相应的下载时间有了大幅度的减少。可见效果很明显。