vue 网页端新版上线后通知用户更新或强制更新(纯前端实现)

vue 网页端新版上线后通知用户更新或强制更新(纯前端实现)

码农世界 2024-05-15 前端 59 次浏览 0个评论

避免用户一直停留在浏览器页面不清除缓存;不刷新;导致的程序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;则不会弹出是否更新的确认窗,直接强制更新。

转载请注明来自码农世界,本文标题:《vue 网页端新版上线后通知用户更新或强制更新(纯前端实现)》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,59人围观)参与讨论

还没有评论,来说两句吧...

Top