[前端]客户端缓存
问题背景:
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">
这些指令使得客户端浏览器不会对资源文件进行缓存,在开发阶段比较有用,但在运行阶段,虽然单个资源文件加载不会占用很长时间
但是当资源文件很多时候,会造成大量延时。
最佳实践:(具体还是得根据项目要求)
采取默认方式,不加与客户端缓存相关指令,交由各个客户端处理(京东和淘宝首页均无此类标签)。
因为浏览器为使网页访问速度提升,默认会缓存资源文件。且为防止读取缓存致使资源更新后用户获取不到最新资源,会设置一个缓存过期时间(具体值可以用开发者工具看)。
更多内容请参考: