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 相关文章推荐
JavaScript 学习笔记(十五)
Jan 28 Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
AngularJS实现表单验证
Jan 28 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
JS中创建函数的三种方式及区别
Mar 13 Javascript
JS实现鼠标框选效果完整实例
Jun 20 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
input file上传 图片预览功能实例代码
Oct 25 Javascript
JS正则匹配中文的方法示例
Jan 06 Javascript
javascript用rem来做响应式开发
Jan 13 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
一个手写的vue放大镜效果
Aug 09 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统计目录大小的自定义函数分享
2014/11/18 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python探索之ModelForm代码详解
2017/10/26 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Python tkinter三种布局实例详解
2020/01/06 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
匡威英国官网:Converse英国
2018/12/02 全球购物
校领导推荐信
2013/11/01 职场文书
铁路个人事迹材料
2014/01/30 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
五年级作文之想象作文
2019/10/30 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript
Go timer如何调度
2021/06/09 Golang
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫