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 无符号右移赋值操作
Apr 17 Javascript
基于Jquery的简单图片切换效果
Jan 06 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
vue.js入门(3)——详解组件通信
Dec 02 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
Feb 28 Javascript
Jquery EasyUI $.Parser
Jun 02 jQuery
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
浅谈函数调用的不同方式,以及this的指向
Sep 17 Javascript
Vue的土著指令和自定义指令实例详解
Feb 04 Javascript
layui radio性别单选框赋值方法
Aug 15 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 Javascript
vue-cli3 取消eslint校验代码的解决办法
Jan 16 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
一个域名查询的程序
2006/10/09 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
jquery map方法使用示例
2014/04/23 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
tensorflow更改变量的值实例
2018/07/30 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
小学生家长评语集锦
2014/01/30 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
防暑降温通知书
2015/04/27 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
捐书仪式主持词
2015/07/04 职场文书