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 相关文章推荐
一个JS翻页效果
Jul 23 Javascript
不用ajax实现点击文字即可编辑的方法
Dec 16 Javascript
锋利的jQuery 第三章章节总结的例子
Mar 23 Javascript
jQuery源码分析-01总体架构分析
Nov 14 Javascript
Vue.js每天必学之组件与组件间的通信
Sep 08 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
浅谈JavaScript闭包
Apr 09 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 Javascript
vue实现分页栏效果
Jun 28 Javascript
node.js中module模块的功能理解与用法实例分析
Feb 14 Javascript
JS sort方法基于数组对象属性值排序
Jul 10 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 学习提高路线分享
2011/10/23 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python中的yield浅析
2014/06/16 Python
python+mysql实现简单的web程序
2014/09/11 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
毕业生自我推荐
2013/11/04 职场文书
车间机修工岗位职责
2014/02/28 职场文书
护士实习求职信
2014/06/22 职场文书
法人委托书范本
2014/09/15 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
离婚被告代理词
2015/05/23 职场文书
怎样写好工作计划
2019/04/10 职场文书
学习心得体会
2019/06/20 职场文书
Java详细解析==和equals的区别
2022/04/07 Java/Android