• 技术文章 >Web开发 >JavaScript

    javascript如何动态加载js文件

    小妮浅浅小妮浅浅2021-08-20 09:27:49原创4475

    1、动态的插入script标签来加载脚本。

      function loadScript(url, callback) {
        const script = document.createElement('script');
        script.type = 'text/javascript';
        // 处理IE
        if (script.readyState) {
          script.onreadystatechange = function () {
            if (script.readyState === 'loaded' || script.readyState === 'complete') {
              script.onreadystatechange = null;
              callback();
            }
          }
        } else {
          // 处理其他浏览器的情况
          script.onload = function () {
            callback();
          }
        }
        script.src = url;
        document.body.append(script);
      }
     
      // 动态加载js
      loadScript('file.js', function () {
        console.log('加载完成');
      })

    2、通过xhr方式加载js文件,不过通过这种方式的话,就可能会面临着跨域的问题。

      const xhr = new XMLHttpRequest();
      xhr.open('get', 'file.js');
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
          if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
            const script = document.createElement('script');
            script.type = 'text/javascript';
            script.text = xhr.responseText;
            document.body.append(script);
          }
        }
      }

    3、将多个js文件合并为同一个并压缩。

    目前,大多数浏览器已经支持并行下载js文件,但并行下载仍有一定数量的限制(基于浏览器,一些浏览器只能下载4个)。此外,每个js文件都需要建立一个额外的http连接,并且4个25KB的文件比100KB的文件大。因此,最好将多个js文件合并为同一个并压缩代码。

    以上就是javascript动态加载js文件的方法,希望对大家有所帮助。更多Javascript学习指路:Javascript

    推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

    专题推荐:javascript动态加载
    品易云
    上一篇:javascript中null和undefined的区别 下一篇:javascript全局变量的使用注意

    相关文章推荐

    • JavaScript中new函数的原理• javascript中call函数的原理• javascript中bind函数如何使用• javascript函数节流是什么• javascript函数节流实现的两种方式• javascript函数去抖如何理解• javascript事件冒泡是什么• javascript事件捕获是什么意思• javascript中memoize函数的使用• javascript工厂模式是什么• javascript适配器模式的理解• javascript装饰者模式是什么• javascript字符串的语法介绍• javascript中null和undefined的区别

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网