首页 > 其他分享 >脚本的动态加载

脚本的动态加载

时间:2024-06-09 14:11:21浏览次数:13  
标签:脚本 src document script function js 动态 加载

<script> 元素还可以动态生成,生成后再插入页面,从而实现脚本的动态加载。

['a.js', 'b.js'].forEach(function(src) {
    var script = document.createElement('script');
    script.src = src;
    document.head.appendChild(script);
});

这种方法的好处是,动态生成的 script 标签不会阻塞页面渲染,也就不会造成浏览器假死。但是问题在于,这种方法无法保证脚本的执行顺序,哪个脚本文件先下载完成,就先执行哪个。

如果想避免这个问题,可以设置 async 属性为 false。

['a.js', 'b.js'].forEach(function(src) {
    var script = document.createElement('script');
    script.src = src;
    script.async = false;
    document.head.appendChild(script);
});

上面的代码不会阻塞页面渲染,而且可以保证 b.js 在 a.js 后面执行。不过需要注意的是,在这段代码后面加载的脚本文件,会因此都等待 b.js 执行完成后再执行。

如果想为动态加载的脚本指定回调函数,可以使用下面的写法。

function loadScript(src, done) {   var js = document.createElement('script');    js.src = src;    js.onload = function() {       done();    };    js.onerror = function() {      done(new Error('Failed to load script ' + src));    };    document.head.appendChild(js); }

 

标签:脚本,src,document,script,function,js,动态,加载
From: https://www.cnblogs.com/ladybug7/p/18239524

相关文章

  • Java数据结构与算法(最大子数组和动态规划)
    前言动态规划主要用于解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题来解决复杂问题,每个子问题仅解决一次,并将其结果存储,以供后续使用,从而避免了重复计算。对应leetcode.-力扣(LeetCode)实现原理两次循环遍历,采用固定其实位置为i,不断滑动j的思想,来计......
  • Java数据结构与算法(爬楼梯动态规划)
    前言爬楼梯就是一个斐波那契数列问题,采用动态规划是最合适不过的。实现原理初始化:dp[0]=1;dp[1]=2;转移方程:dp[i]=dp[i-1]+d[i-2];边界条件:无具体代码实现classSolution{publicintclimbStairs(intn){if(n==1){return1;}......
  • 121文章解读与程序——EI\CSCD\北大核心《计及动态电价的电动汽车充放电优化调度》
    ......
  • 改进动态窗口DWA算法,模糊控制自适应调整评价因子权重 dwa 动态路径规划 动态窗口法 定
    改进动态窗口DWA算法,模糊控制自适应调整评价因子权重dwa动态路径规划动态窗口法定义模糊评价函数实时调整权重因子更新权重因子评估路径dwa规划     ......
  • linux脚本编写备忘
    linux脚本编写备忘1、linux脚本的回车换行符最好用unix格式的。否则某些系统下运行会出错,例如veket18中必须要求是LF格式。Unix系统(包括Linux和macOS):使用LF(LineFeed,\n)字符作为行结束符。在ASCII码表中,LF字符的十进制表示为10。Windows系统:使用CRLF(Carriage......
  • ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback
    ArcGIS在线历史影像网站WorldImagery Wayback(网址:https://livingatlas.arcgis.com/wayback/)提供了数期历史影像在线浏览服务,之前不少自媒体作者在文中宣称其能代表GoogleEarth历史影像。1、一点对比(1)同一级别下的版本覆盖面以下述区域为例,自2014年2月20日至2022年5月18......
  • 六、动态规划引入
    动态规划(DynamicProgramming,DP)题是算法竞赛中的必出题型。DP算法的效率高、代码少,竞赛队员不仅需要掌握很多编程技术,而且需要根据题目灵活设计具体的解题方案,能考察其思维力、建模抽象能力、灵活性等。。和贪心法、分治法一样,DP并不是一个特定的算法,而是一种算法思想。......
  • SpringAOP-代理方式-Cglib动态代理
    文章目录cglib动态代理cglib是基于继承的方式实现的是继承目标类从而产生代理类springaop底层使用的就是cglib的动态代理packagecom.itheima.cjlibproxy;importnet.sf.cglib.proxy.Callback;importnet.sf.cglib.proxy.Enhancer;importnet.sf.cglib.proxy.......
  • Keil一键添加.c文件和头文件路径脚本--可遍历添加整个文件夹
    最近想移植个LVGL玩玩,发现文件实在是太多了,加的手疼都没搞完,实在不想搞了就去找脚本和工具,基本没找到一个。。。。。。主要是自己也懒得去研究写脚本,偶然搜到了一个博主写的脚本,原博客地址:https://blog.csdn.net/riyue2044/article/details/139424599但是有以下问题:1.这个脚本......
  • 万万没想到!这款脚本能在18个平台上掘金,省时省力好用哭了!
    在这个信息爆炸的时代,频繁切换平台和下载各种脚本不仅耗时,还让人头疼。有没有一种方法可以一次性解决这些问题?答案是肯定的!今天我就来揭秘一款宝藏级的掘金脚本,好用到哭!这款脚本支持多达18个平台的掘金操作,真正做到了“一键搞定”。无论你是技术大牛,还是初出茅庐的小白,这......