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 16 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
May 22 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
May 09 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
Vue2实现组件props双向绑定
Dec 02 Javascript
用js制作淘宝放大镜效果
Oct 28 Javascript
Angularjs Promise实例详解
Mar 15 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
JavaScript This指向问题详解
Nov 25 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
PHP守护进程实例
2015/03/06 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python基于内置函数type创建新类型
2020/10/22 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
实习生工作证明范本
2014/09/14 职场文书
党员先进事迹材料
2014/12/19 职场文书
皇城相府导游词
2015/02/06 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python
python数字图像处理实现图像的形变与缩放
2022/06/28 Python