javascript带回调函数的异步脚本载入方法实例分析


Posted in Javascript onJuly 02, 2015

本文实例讲述了javascript带回调函数的异步脚本载入方法。分享给大家供大家参考。具体实现方法如下:

var Loader = function () { }
Loader.prototype = {
  require: function (scripts, callback) {
    this.loadCount   = 0;
    this.totalRequired = scripts.length;
    this.callback    = callback;
    for (var i = 0; i < scripts.length; i++) {
      this.writeScript(scripts[i]);
    }
  },
  loaded: function (evt) {
    this.loadCount++;
    if (this.loadCount == this.totalRequired && typeof this.callback == 'function') this.callback.call();
  },
  writeScript: function (src) {
    var self = this;
    var s = document.createElement('script');
    s.type = "text/javascript";
    s.async = true;
    s.src = src;
    s.addEventListener('load', function (e) { self.loaded(e); }, false);
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(s);
  }
}

用法演示

var l = new Loader();
l.require([
  "example-script-1.js",
  "example-script-2.js"],
  function() {
    // Callback
    console.log('All Scripts Loaded');
  });

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
FormValid0.5版本发布,带ajax自定义验证例子
Aug 17 Javascript
javascript打开新窗口同时关闭旧窗口
Jan 16 Javascript
jQuery 事件队列调整方法
Sep 18 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
js解析与序列化json数据(三)json的解析探讨
Feb 01 Javascript
javascript正则表达式中的replace方法详解
Apr 20 Javascript
JS表格组件神器bootstrap table详解(基础版)
Dec 08 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
JavaScript实现通过select标签跳转网页的方法
Sep 29 Javascript
关于axios返回空对象的问题解决
Apr 04 Javascript
Angularjs中的$apply及优化使用详解
Jul 02 Javascript
jQuery实现日历效果
Sep 11 jQuery
javascript 闭包详解
Jul 02 #Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 #Javascript
浅谈Javascript线程及定时机制
Jul 02 #Javascript
JavaScript获得url查询参数的方法
Jul 02 #Javascript
js跨域请求的5中解决方式
Jul 02 #Javascript
JS实现从连接中获取youtube的key实例
Jul 02 #Javascript
由ReactJS的Hello world说开来
Jul 02 #Javascript
You might like
简单的PHP缓存设计实现代码
2011/09/30 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
php实现学生管理系统
2020/03/21 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
vue.js实现标签页切换效果
2018/06/07 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
pygame实现弹球游戏
2020/04/14 Python
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
几个常见的软件测试问题
2016/09/07 面试题
室内设计专业个人的自我评价
2013/12/18 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
文明礼仪小标兵事迹
2014/01/12 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
少年犯观后感
2015/06/11 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
python 模块重载的五种方法
2021/04/24 Python
使用Python解决图表与画布的间距问题
2022/04/11 Python