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.AsyncBox 弹出对话框插件
Aug 29 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 Javascript
JS作用域深度解析
Dec 29 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 Javascript
C#实现将一个字符转换为整数
Dec 12 Javascript
详解如何在Angular优雅编写HTTP请求
Dec 05 Javascript
vue 插件的方法代码详解
Jun 06 Javascript
Vue.js实现备忘录功能
Jun 26 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
Sep 16 Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 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 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
php文件缓存类汇总
2014/11/21 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
python连接sql server乱码的解决方法
2013/01/28 Python
python生成日历实例解析
2014/08/21 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
文秘专业毕业生就业推荐信
2013/11/08 职场文书
酒店司机岗位职责
2013/12/14 职场文书
师范学院教师自荐书
2014/01/31 职场文书
学校党员对照检查材料
2014/08/28 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL