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

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

javascript 复制代码
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

javascript 复制代码
import './util/AutoUpdate';
相关推荐
H_z_q24015 分钟前
web前端(HTML)银行汇款单的制作
前端·html
赛恩斯5 分钟前
kotlin 为什么可以在没有kotlin 环境的安卓系统上运行的
android·开发语言·kotlin
steem_ding5 分钟前
net.core 调优指南
开发语言·php
小宇的天下8 分钟前
Synopsys Technology File and Routing Rules Reference Manual (1)
java·服务器·前端
@PHARAOH9 分钟前
WHAT - Vercel react-best-practices 系列(四)
前端·react.js·前端框架
@PHARAOH11 分钟前
WHAT - Vercel react-best-practices 系列(三)
javascript·react.js·ecmascript
duangww14 分钟前
JavaScript调用ABAP后端发布的restful服务
javascript·sap fiori
今天也要晒太阳47318 分钟前
对el-upload的上传文件显示名做长度限制
前端
答案—answer19 分钟前
开源项目:Three.js3D模型可视化编辑系统
javascript·3d·开源·开源项目·three.js·three.js编辑器
Thomas游戏开发20 分钟前
分享一个好玩的:一次提示词让AI同时开发双引擎框架
前端·javascript·后端