[前端]客户端缓存

问题背景:

SSH项目,网页访问缓慢,分析原因:1.Server端网速慢,或者说不够快,不可控因素。2.网页本身访问慢。

对于第二种情况:

1.jsp页面解析慢,或者说程序后台不够优化。具体涉及到action层、service层、dao层、持久层的程序执行效率问题。

2.资源文件加载慢。具体就是js、css、img文件的加载,抛开网速问题,就是客户端的浏览器缓存的问题。

由于用的是myeclipse自动构建的模板jsp页面,会生成如下指令:

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> 

这些指令使得客户端浏览器不会对资源文件进行缓存,在开发阶段比较有用,但在运行阶段,虽然单个资源文件加载不会占用很长时间

但是当资源文件很多时候,会造成大量延时。

最佳实践:(具体还是得根据项目要求)

采取默认方式,不加与客户端缓存相关指令,交由各个客户端处理(京东和淘宝首页均无此类标签)。

因为浏览器为使网页访问速度提升,默认会缓存资源文件。且为防止读取缓存致使资源更新后用户获取不到最新资源,会设置一个缓存过期时间(具体值可以用开发者工具看)。

捕获

 

更多内容请参考:

Header Field Definitions

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

posted @ 2013-04-17 11:27  wanpp590  阅读(300)  评论(0编辑  收藏  举报