万有斥力 发表于 6 天前

前端部署新版本,如何通知用户刷新页面?

1.WebSocket或者SSE

利用WebSocket或Server-Sent Events(SSE)等技术,可以实现服务器与客户端的实时通讯。当有新版本发布时,服务器会通过这些技术将更新通知推送给客户端,前端汲取到通知后,可以弹出提示框告知用户当前页面有新版本,建议刷新页面以获取最新内容。
2.轮询检测更新

在前端代码中设置一个定时器,轮询检测更新通常用于检测服务端资源(如HTML文件、JS文件)是否发生厘革。例如,通过轮询获取index.html文件的版本号。这种方式比力斲丧服务器。
// src/main.js
import {
    checkForUpdate } from './version/auto-update.js';
// 初始化自动更新
checkForUpdate();
// src/version/auto-update.js
import aios from "axios"
function checkForUpdate() {
   
   const metaTag = document.querySelector('meta');
   const currentVersion = metaTag ? metaTag.getAttribute('content') : null;
    axios.get('xxxx').then(res=>{
   
      if (res.status === 200) {
   
         const serverVersion = res.responseText;
         if (serverVersion !== currentVersion) {
   
               alert('页面已更新,请刷新页面以查看最新内容');
               //一个通知弹框
         }
       }
    })
}

// 设置轮询间隔时间(例如每5分钟)
setInterval(checkForUpdate, 5 *60* 1000);
3.版本号控制(与2一样都是定时监测)

在每次部署时生成一个唯一的版本号文件(如version.json),并在前端请求时携带当前版本号。通过比力前端版本号与后端版本号,判定是否需要刷新页面。如果检测到版本更新,前端会提示用户刷新。
3.1 创建 version.json 文件

首先,在项目中创建一个 version.json 文件,用于存储当前项目的版本号。这个文件可以在构建时自动生成,并且每次构建时更新版本号。
//会在public/version.json中自动生成,无需手动创建
{
   
"version"<
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 前端部署新版本,如何通知用户刷新页面?