动态导入 script 文件执行

解决因缓存问题导致新更改后的静态JS文件,部分功能缺失问题

/** 动态添加 script文件 urlList动态添加的数组  callback所有函数文件加载完后执行   */
function loadJs(urlList = [], callback = function () { console.log("无后续执行函数"); }) {
    let promises = urlList.map(url => {
        return new Promise((resolve, reject) => {
            let script = document.createElement('script');
            script.src = `${url}?v=${new Date().getTime()}`;
            script.type = 'text/javascript';
            script.onload = () => resolve(script);
            script.onerror = () => reject(new Error('Script load error for ' + url));
            document.head.append(script);
        });
    });
    Promise.all(promises).then(() => {
        // 所有script加载并执行完毕后的操作
        console.log('All scripts loaded');
        callback();
    }).catch(err => {
        // 处理错误
        console.error('Error loading scripts', err);
    });
}

使用 一般情况搭配 onload事件

 let pageJs = ['../js/bigdata/jquery-3.5.1.min.js', '../js/vue.js', '../layuiAdmin.v1.2.1/layuiadmin/layui/layui.js',]
        window.onload = function () {
            loadJs(pageJs, initVue)
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值