开发Vue单页面应用SPA项目的时候发现问题,如果用户已经打开网页,后续的访问都只会请求接口,不会再刷新页面。这样导致用户没有获取到我们线上新的代码。
解决思路有很多
直接请求index.html
检测script文件hash值,这种方式不需要增加额外的文件head检查index.html
的更新时间etag
值,需要服务端开启缓存可以每次代码打包的时候生成一个版本号
文件version.json
,程序检测到有新的版本号就提示用户刷新页面
还有一个问题是检测时机
定时轮询检测适当的时机触发,比如用户切换路由
示例
$ echo "{\"version\": \"$(date +%s)\"}" > version.json$ cat version.json{"version": "1673926634"}
参考
前端重新部署如何通知用户刷新网页?
前端发版更新提示(不需要后端)