今天对自己做的项目中的一个设计器界面加载速度上进行了优化,因为页面在加载的时候,感觉有点慢。首先,我用firefox的yslow和chrome的pagespeed进行了测试,效果如下,分数有点不同,但是都是很低的。我其实主要在chrome下用pagespeed的提示进行优化的。
yslow优化前:
yslow优化后:
pagespeed优化前:
pagespeed优化后:
优化策略:
1.tomcat配置启用gzip压缩
2.tomcat配置静态文件的过期时间
3.css放页面上方
4.javascript放页面下方
5.css和js文件分别合并、压缩
tomcat启用gzip压缩
打开tomcat的conf目录下的server.xml文件,修改如下
Xml代码
- <Connector port="80" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" executor="tomcatThreadPool" URIEncoding="utf-8"
- compression="on"
- compressionMinSize="50" noCompressionUserAgents="gozilla, traviata"
- compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" />
参考链接:http://blog.csdn.net/hbcui1984/article/details/5666327
tomcat配置静态文件过期时间
打开tomcat的conf目录下的web.xml文件,增加如下:
Xml代码
- <filter>
- <filter-name>ExpiresFilter</filter-name>
- <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
- <init-param>
- <param-name>ExpiresByType image</param-name>
- <param-value>access plus 10 minutes</param-value>
- </init-param>
- <init-param>
- <param-name>ExpiresByType text/css</param-name>
- <param-value>access plus 10 minutes</param-value>
- </init-param>
- <init-param>
- <param-name>ExpiresByType application/javascript</param-name>
- <param-value>access plus 10 minutes</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>ExpiresFilter</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- </filter-mapping>
过期时间:每次请求增加十分钟
参考链接:https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/filters/ExpiresFilter.html
css文件合并压缩,js文件合并压缩
合并压缩使用grunt进行处理,简单方便
参考链接:http://www.cnblogs.com/snandy/archive/2013/03/11/2949177.html
http://www.cnblogs.com/snandy/archive/2013/05/20/3088613.html
总体来说,页面加载速度有所提升,因页面设计器中,各个组件的js和核心js加起来有30多个,我只针对这方面进行了压缩合并,其他引入的js插件都是使用的压缩后的;css方面我也只压缩合并的我自己增加的文件。图片方面没有把所有图片都合并到一个文件中,只有少部分icon整合了,这方面合并后应该还会有所提升。