首页 > 其他分享 >js动态加载

js动态加载

时间:2023-12-17 21:26:03浏览次数:23  
标签:function document script js xhr loadScript 动态 加载

<script type="text/javascript">
  // 动态加载js(顺序执行js)
  function loadScript(url, callback) {
    var script = document.createElement("script")
    script.type = "text/javascript";
    if (script.readyState) { //IE 
      script.onreadystatechange = function () {
        if (script.readyState == "loaded" || script.readyState == "complete") {
          script.onreadystatechange = null;
          callback();
        }
      };
    } else { //Others 
      script.onload = function () {
        callback();
      };
    }
    script.src = url;
    document.querySelectorAll("head")[0].appendChild(script);
  };
  loadScript("file1.js", function () {
    alert("File is loaded!");
  });


  loadScript("file1.js", function () {
    loadScript("file2.js", function () {
      loadScript("file3.js", function () {
        alert("All files are loaded!");
      });
    });
  });

  // 脚本注入
  var xhr = new XMLHttpRequest();
  xhr.open("get", "file1.js", true);
  xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
      if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.text = xhr.responseText;
        document.body.appendChild(script);
      }
    }
  };
  xhr.send(null);
</script>

 

标签:function,document,script,js,xhr,loadScript,动态,加载
From: https://www.cnblogs.com/justSmile2/p/17909842.html

相关文章

  • JVM基础篇(二)-JVM结构-类加载子系统
    类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识(CAFEBABE)。ClassLoader只负责class文件的加载,至于它是否可以运行,则由执行引擎(ExecutionEngine)决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方......
  • 动态绘制svg
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • 一句话解决加载模型时的CUDA out of memory
    在加载模型一行后加上max_memory即可,超出显存后会自动移到内存。model=AutoModel.from_pretrained('your_model',trust_remote_code=True,max_memory={0:"6GiB","cpu":"10GiB"})记录一下,备忘。 本文来自博客园,作者:星如雨yu,转载请注明原文链接:https://www.cnblogs.com......
  • 使用JS和C#完成websocket双向通讯
    写在前面:微软官方对websocket的直接支持很差,教程也写得不用心。还要用户自己去转字节数组和字符串,太过分了!毕竟主推SignalR。本文是在官方教程的基础上,对其进行了一些简单的讲解,和方法提取、封装,以期降低学习难度。步骤描述:1、随便建了个普通的mvc项目(任意带控制器的.net项......
  • js实现以鼠标为中心缩放图片
    直接上代码,不解释<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</tit......
  • 非动态数组版本下的筛选
    问题:一对多查找(筛选)的结果需要横向排列,但是表格暂时不支持动态数组。右拉下拉公式解决:{=IFERROR(INDEX(FILTER($E:$E,$D:$D=$G2),COLUMN(A1)),"")}公式中的Filter部分筛选出满总D列中等产于G2对应E列的内容,其结果是多个单元格组成的数组。使用Index提取数组中的内容,第......
  • VUE框架指令语法与v-bind实现标签属性内部动态------VUE框架
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • Threejs利用着色器编写动态飞线特效
    一、导语动态飞线特效是可视化数据地图中常见的需求之一,鼠标点击的区块作为终点,从其他区块飞线至点击区块,附带颜色变换或者结合粒子动画二、分析利用创建3点来构成贝塞尔曲线,形成线段利用着色器材质来按照线段以及时间点变化来变化线段的颜色形成动画三、上基础代码//贝塞尔曲线......
  • Threejs漫天多彩粒子天空--粒子系统打造
    一、导语漫天多彩粒子天空特效应该也是Threejs项目中挺常见的一个需求,因为它是基于粒子系统,可以衍生出许多的不一样的方案,比如,星空特效,下雨特效,飘雪特效等等,不仅可以用在项目中增加氛围,有时候可以结合gis业务去使用二、分析利用Points粒子特效去实现多个物体的生成使用贴图去给粒子......
  • 使用JS和SignalR完成双向通信
    写在前面:看官网介绍,听开发者朋友的感受,SignalR对websocket等多个长连接协议进行了封装,提供了多种方法,能够适应很多场合和复杂情况。单纯论简单的web长连接,它确实没有js/nodejs版的websocket直观、简单。微软的风格,一来就高大上,不知道又会劝退多少人,会不会把自己玩死。我帮你简单......