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 相关文章推荐
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
Apr 21 Javascript
EXT中xtype的含义分析
Jan 07 Javascript
javascript面向对象之二 命名空间
Feb 08 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
JS获取当前地理位置的方法
Oct 25 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
vue 子组件修改data或调用操作
Aug 07 Javascript
小程序实现密码输入框
Nov 16 Javascript
微信小程序tab左右滑动切换功能的实现代码
Feb 08 Javascript
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 设计模式之观察者模式介绍
2012/02/22 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
深入PHP变量存储的详解
2013/06/13 PHP
php实现计数器方法小结
2015/01/05 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
Python读取图片属性信息的实现方法
2016/09/11 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
python批量创建指定名称的文件夹
2019/03/21 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
工程项目经理岗位职责
2015/02/02 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
python中tkinter复选框使用操作
2021/11/11 Python