当前位置: 首页 > article >正文

Vue检测获取最新资源 解决浏览器缓存问题

Vue检测获取最新资源 解决浏览器缓存问题

  • 1、在public文件夹下创建version.json文件
  • 2、vue.config.js中,每次打包动态更新version.json内容
  • 3、App.vue中使用定时器去检测版本号和本地是否有差异

背景:由于浏览器缓存问题,vue2项目发布后,无法第一时间获取最新资源,影响使用

1、在public文件夹下创建version.json文件

在这里插入图片描述

2、vue.config.js中,每次打包动态更新version.json内容

在这里插入图片描述

let fs = require('fs');
const version = new Date().getTime();
let vJSON = require('./public/version.json') || {}
if ( process.env.NODE_ENV === "production" ) {
  vJSON = { 'version': version + '' }
  fs.writeFile('./public/version.json', JSON.stringify(vJSON), () => {
    console.log('新版本号生成成功');
  });
}

3、App.vue中使用定时器去检测版本号和本地是否有差异

timer: null // 定时器实例

this.getLatestResources(true)
// 每半小时监测一次是否有更新
this.timer = setInterval(() => {
  this.getLatestResources()
}, 30 * 60 * 1000)

// 获取最新资源
getLatestResources(b = false) {
  this.$axios.get("/xxxxxxx/version.json",{params:{data: new Date().getTime()}}).then(res => {
    let lastVersion = res.data.version
    let storageVersion = localStorage.getItem("version")
    if (!storageVersion) {
      localStorage.setItem("version", lastVersion)
    } else {
      if(storageVersion != lastVersion){
        localStorage.removeItem("version")
        this.timer && clearInterval(this.timer)
        !b && this.$Modal.info({
          title: "提示",
          content: '检测到系统有更新,请刷新浏览器后使用!',
          onOk: () => {
            this.$router.go(0)
          }
        });
        b && this.$router.go(0)
      }
    }
  })
}

http://www.kler.cn/news/353844.html

相关文章:

  • CloseableHttpResponse 类(代表一个可关闭的 HTTP 响应)
  • 现在做一个产品级别的物联网智能应用,能链接wifi可以和chatgpt交互,做到实时语音交互的能力
  • Docker 的使用-01
  • 9.存储过程安全性博客大纲(9/10)
  • 双指针 — 复写零
  • tensorflow入门案例手写数字识别人工智能界的helloworld项目落地1
  • Spring 依赖注入(Dependency Injection)
  • Chrome(谷歌)浏览器 数据JSON格式美化 2024显示插件安装和使用
  • 3.3 Thymeleaf语法
  • 深入理解Qt中的QTableView、Model与Delegate机制
  • C++——vector的了解与使用
  • 易我数据恢复软件怎么样?2024四大数据恢复工具推荐!
  • 知识图谱融入向量数据库,带来RAG效果飞升
  • Java重修笔记 InetAddress 类和 Socket 类
  • 数据结构——排序(归并排序)
  • 给定任意非空有向图 G,输出 G 中所有 K 顶点的算法,并返回 K 顶点的个数。
  • 通过API进行Milvus实例配置
  • Android摄像头Camera2和Camera1的一些总结
  • 百万字文本内容搜索Java实现方案
  • springboot项目多个数据源配置 dblink