js:Vue单页面应用SPA项目代码更新提示用户刷新页面

开发Vue单页面应用SPA项目的时候发现问题,如果用户已经打开网页,后续的访问都只会请求接口,不会再刷新页面。这样导致用户没有获取到我们线上新的代码。

解决思路有很多

  • 直接请求index.html检测script文件hash值,这种方式不需要增加额外的文件
  • head检查index.html的更新时间etag值,需要服务端开启缓存
  • 可以每次代码打包的时候生成一个版本号文件version.json,程序检测到有新的版本号就提示用户刷新页面

还有一个问题是检测时机

  • 定时轮询检测
  • 适当的时机触发,比如用户切换路由

示例

$ echo "{
    
    \"version\": \"$(date +%s)\"}" > version.json

$ cat version.json
{
    
    "version": "1673926634"}

参考
前端重新部署如何通知用户刷新网页?
前端发版更新提示(不需要后端)

猜你喜欢

转载自blog.csdn.net/mouday/article/details/128713540