高性能WEB开发2

利用maven插件,同时开发了ant脚本。(都利用了YUI Compressor开源代码)
Maven插件可以用maven-javascript-plugin(可压缩JS/CSS)
4.1.5 Servlet拦截器瘦身和减少不需要的拦截
关注拦截器层的 /*  
如果有/*拦截配置,则一定要对资源读取加cache, 参考下面web.xml中的staticResouceCacheFilter配置。
另外尽量减少这种/*的配置。
4.1.6 使用浏览器前端缓存(Cache-Control Header)
在web.xml中增加拦截器配置
<filter>
  <filter-name>staticResouceCacheFilter</filter-name>
  <filter-class>web.filter.HtmlResourceCacheFilter</filter-class>  
 </filter>
 <filter-mapping>
  <filter-name>staticResouceCacheFilter</filter-name>  
  <url-pattern>*.gif</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>staticResouceCacheFilter</filter-name>  
  <url-pattern>*.png</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>staticResouceCacheFilter</filter-name>  
  <url-pattern>*.js</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>staticResouceCacheFilter</filter-name>
  <url-pattern>*.css</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>staticResouceCacheFilter</filter-name>
  <url-pattern>*.html</url-pattern>
 </filter-mapping>
控制Cache-Control的策略在bme.properties中配置:
#cache-control for http message header. like static resource (js,css,png,gif,etc)
#Cache-Control  :  max-age=604800 means cache 7 days for these static resources.
cache-control=private,max-age=604800
对于不需要响应应答的,设置响应为(HTTP response 204:No Response 204),比如平台内置的自动关闭会话的请求。
尽量少用/不用类似DWR这样的动态js生成框架,那会导致每次都下载几十k的js,无法缓存使用。尤其带宽受限的区域,使用 此类框架会导致性能无法优化。

猜你喜欢

转载自xiaoyuwei.iteye.com/blog/1151697