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 相关文章推荐
jquery radio 操作代码
Mar 16 Javascript
js 回车提交表单两种实现方法
Dec 31 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
May 08 Javascript
javascript检测两个数组是否相似
May 19 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
JavaScript事件处理程序详解
Sep 19 Javascript
Vue使用json-server进行后端数据模拟功能
Apr 17 Javascript
vue如何在自定义组件中使用v-model
May 14 Javascript
Vue数据双向绑定的深入探究
Nov 27 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 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学习之 认清变量的作用范围
2010/01/26 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
vue实现扫码功能
2020/01/17 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
关于numpy.where()函数 返回值的解释
2019/12/06 Python
python groupby 函数 as_index详解
2019/12/16 Python
python 对xml解析的示例
2021/02/27 Python
网络工程师个人的自我评价范文
2013/10/01 职场文书
出纳员的岗位职责
2014/02/22 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
会计试用期自我评价
2015/03/10 职场文书
博士生专家推荐信
2015/03/25 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
MySQL分库分表详情
2021/09/25 MySQL