避免用户一直停留在浏览器页面不清除缓存;不刷新;导致的程序bug
1.在项目public文件夹下创建一个 versions.json 文件
2.在项目package.json文件中更新版本号与versions.json中的相同
3.封装一个检查更新的方法
import packageJson from '../package.json' function checkUpdate() { const oldTime = Number(sessionStorage.getItem('UpdateTime')) const curTime = Date.now() if (oldTime && oldTime + 60 * 1000 > curTime) return fetch(`${window.location.origin}/versions.json`, { cache: 'no-cache' }).then(async res => { const { version, must } = await res.json() sessionStorage.setItem('UpdateTime', curTime) if (packageJson.version != version && must) { return window.location.reload() } else if (packageJson.version != version) { const isConfirm = confirm('有可用更新,是否立即更新') if (isConfirm) window.location.reload() } }) }
4.在响应拦截器处调用该方法即可实现
5.每次更新版本将versions.json文件中的版本号与package.json中的版本号相等;并且与线上的不相等就可以实现;must字段代表是否强制更新;如果该字段为true;则不会弹出是否更新的确认窗,直接强制更新。
还没有评论,来说两句吧...