有啥办法可以让用户不用清缓存,或者用户操作省事点的方法吗? 我想最多就是在页面加一个清缓存的按钮帮助用户清缓存, 再进一步的话就是给这个按钮加个 tips 提示用户 “出问题时请先点此按钮”。 其他没啥好办法了,问下大家对于 “版本更新后用户得清缓存才能用” 这个问题有啥好的方法?
我理解的一般静态资源在发布的时候应该是要带版本的,一般来说就是在访问的时候系统会返回一个最新的时间戳,如果时间戳比缓存的要晚,表示有新的版本发布了,需要重新加载;如果时间戳没变化,就表示当前版本已经是最新了,直接用缓存的就行,减少资源重复请求。
一般静态文件的获取途径为:本地缓存 -> 没有则发起请求 -> 网络代理缓存 -> 不使用缓存则获取服务器文件 但部分单页应用的话,它是通过文件 hash 来做的,所以 index.html 入口文件一般不缓存
生成前端资源的时候文件名后方加个随机串
想确认下,发版本都得清缓存才能用,"才能用" 指的是才能用新版本,还是才能正常使用?
如果是前者,前面已经提到了,webpack 会给打包出来的资源文件加个 hash 值,浏览器缓存一般是用文件名作为 key 的,文件名变了就不会用缓存而是去服务端拉取。至于 index 则通过加一个告知浏览器不进行缓存的 header 来完成。 网上用 前端 缓存 关键字,搜索到一篇对这个说得比较详细的文章,可以看看:浏览器缓存带来的前端项目更新问题及解决方法
前端 缓存
如果是后者,这个就是向下兼容问题了,可以具体说下情况。
如果行为不符合产品经理的预期,提 bug 即可