经验:合理运用浏览器缓存

浏览器缓存:浏览器把第一次访问某页面的数据记录下来,第二次访问的时候,就不用再次请求服务器,直接从缓存读取.这样就提供了访问效率,同时减轻了服务器的压力;

浏览器缓存帮助我们快速访问网页的同时,也带来了一个弊端,那就是系统如果有更新,浏览器不会在缓存失效前主动访问服务器,就造成了更新迟缓的问题,甚至报错;

目前系统中也遇到了类似的问题,我们更新了系统后,客户会说我们系统报错,其实就是因为浏览器缓存造成的,我们会通知他们多刷新几下就能解决,不过,这不是长久之计,也不能带给客户一个好的体验;

jsp页面的缓存很好解决,在jsp页面中,head标签里面写入特定的代码,就可以告知浏览器这个页面不用缓存;当然,如果在每个页面都写的话,工作量有点大,如果写错了一点,需要全部修改的话,那就只能呵呵了,这里我们就可以写在过滤器里面.就不用每个页面都写了;
关于js,css的缓存,这2类文件,即使在jsp页面里面写了相应的不缓存代码,but浏览器不懂,它还是会缓存.

解决方案我整理出如下几种:

1.在引入js代码的部分后面写一个随机数,这样,浏览器每次都会从后台访问数据了. 但是,这样做的话,浏览器就永远不会缓存系统的文件了…我们是不是把浏览器带给我们的缓存的优点完全给抛弃了.一些经常不变的js文件,还是应该缓存的.

2.针对上面的问题,又优化了一下,在每次更新时,对修改过的js加入一个版本号,这样的话,浏览器会对这个js进行重新访问加载,对版本号没改变过的,不会进行重新加载.但是,问题来了,例如一个通用的js,70%的jsp页面都引用了,如果修改了这个js文件,是不是意味着那70%的页面都要修改一下,加入一个版本号.

3.针对方法2遇到的问题,我们可以这样解决,在页面引用js的地方,写一个标签库,在标签库里面引入所有通用的js,每个页面,都引用这个标签库,如果在遇到通用js发生改变的时候,就可以修改标签库里面的js版本号.实现修改所有页面js版本号的目的.对于一些页面特定的js,只有一个jsp页面引用,修改完js后再加入版本号就OK了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值