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的ON()方法支持的所有事件罗列
Feb 28 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
Oct 06 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
4个顶级开源JavaScript图表库
Sep 29 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
JS中自定义事件的使用与触发操作实例分析
Nov 01 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
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
简单的JS多重继承示例
2008/03/13 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
Python类的专用方法实例分析
2015/01/09 Python
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
使用python实现knn算法
2017/12/20 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
python函数与方法的区别总结
2019/06/23 Python
简单了解python元组tuple相关原理
2019/12/02 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
酒店保安员岗位职责
2014/01/31 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
献爱心标语
2014/06/21 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
感恩老师主题班会
2015/08/12 职场文书
《观潮》教学反思
2016/02/17 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript