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

前端独立实现页面是否有发布

1、自动更新js (AutoUpdate.js)

import { Modal } from "antd"

let lastSrcs;
const scriptReg = /\<script.*src=["'](?<src>[^"']+)/gm;
async function extractNewScripts() {
    const html = await fetch('/?_timnestamp=' + Date.now()).then(res => {
        return res.text();
    })
    scriptReg.lastIndex = 0;
    let result = [];
    let match;
    console.log(html)
    while ((match = scriptReg.exec(html))) {
        result.push(match.groups.src)
    }
    return result;
}

async function needUpdate() {
    const newScripts = await extractNewScripts();
    if (!lastSrcs) {
        lastSrcs = newScripts
        return false;
    }
    let result = false;
    if (lastSrcs.length !== newScripts.length) {
        result = true;
    }
    for (let i = 0; i < lastSrcs.length; i++) {
        if (lastSrcs[i] !== newScripts[i]) {
            result = true;
            break;
        }
    }
    lastSrcs = newScripts;
    return result
}

const duration = 5000;
function autoRefresh() {
    setTimeout(async () => {
        const willUpdate = await needUpdate();
        if (willUpdate) {
            Modal.success({
                content: '当前系统有更新,请刷新',
                keyboard: false,
                onOk: () => {
                    location.reload(true);
                }
            });
        }
        autoRefresh();
    }, duration)
};
autoRefresh();

2、修改webpack出口打包文件名称

3、引入AutoUpdate.js

import './util/AutoUpdate';


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

相关文章:

  • Android 热点分享二维码功能简单介绍
  • openpnp - 底部相机高级校正的参数设置
  • 第2篇:Linux入侵排查----应急响应篇
  • Python - PDF 转 png
  • Redis篇(缓存机制 - 分布式缓存)(持续更新迭代)
  • EtherNET IP 转 Profinet 网关:工业通信的桥梁
  • css3-----2D转换、动画
  • 等保2.0数据库测评之达梦数据库测评
  • docker镜像下载【被丰厚】
  • JavaScript 用HTML5约束验证API做表单验证
  • 企业数据安全从0到1建设方法
  • 安全中心 (SOC) 与 网络运营中心 (NOC)
  • LLM之基于llama-index部署本地embedding与GLM-4模型对rag系统进行测评
  • 深度学习应用:改变世界的前沿科技
  • .Net 6.0 Windows平台如何判断当前电脑是否联网
  • 并行编程实战——TBB框架的应用之一Supra的基础
  • Rust设计模式
  • 国内访问OpenAI API
  • 【EchoMimic整合包及教程】蚂蚁集团支付宝开源了数字人技术EchoMimic,可用于虚拟主播、视频编辑等
  • 10.2 Linux_并发_进程相关函数
  • 达梦数据库开启归档模式
  • Python操作系统的6个自动化脚本
  • 基于keras 的神经网络股价预测模型
  • 物联网将如何影响全球商业?
  • Armeria gPRC 高级特性 - 装饰器、无框架请求、阻塞处理器、Nacos集成、负载均衡、rpc异常处理、文档服务......
  • 开发微信小程序 案例01-本地生活首页页面
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第十四章 Linux 目录结构讲解
  • 【DRAM存储器四十一】LPDDR5介绍--特性、引脚、基本结构简介
  • 交通场景多目标检测系统源码分享
  • 数据结构-3.10.队列的应用