javascript写的异步加载js文件函数(支持数组传参)

 更新时间:2014年06月07日 11:41:28   作者:  
这篇文章主要介绍了javascript写的异步加载js文件函数,同时支持单个文件和多个文件(数组传参),但不兼容IE6,需要的朋友可以参考下

自己用的加载js文件,支持多文件,不兼容ie

复制代码 代码如下:

/**
 * 加载js文件
 * @param  {string || array}   url   js路径
 * @param  {Function} fn      加载完成后回调
 * @return {object}           game对象
 * @example
 * getScript("url.js",fn)
 * getScript(["url-1.js","url-2.js"],fn)
 */
game.getScript = (function() {
 var cache = {};//内部缓存下url,下次则不请求
 return function(url, fn) {
  if ("string" === typeof(url)) {
   url = [url]; //如果不是数组带个套
  };
  var i = 0,//循环起
   ok = 0,//加载成功几个js
   len = url.length,//一共几个js
   head = document.getElementsByTagName("head")[0],
   js, _url,
   create = function(url) {//创建js
    js = document.createElement("script");
    js.type = "text/javascript";
    js.src = url;
    head.appendChild(js);
    return js;
   };
  for (; i < len;) {
   if (cache[encodeURIComponent((_url = url[i++]))]) {//如果加载过
    (++ok >= len && fn) && fn();//如果加载完所有的js则执行回调
    continue;
   }
   cache[encodeURIComponent(_url)] = !0;//设置缓存
   js = create(_url);//创建js
   fn && (js.onload = function() {
    if (++ok >= len) {//如果加载完所有的js则执行回调
     fn();
    }
   });
  };
  head = js = _url = create  = null;
  return this;
 }
})();

相关文章

  • Javascript 闭包引起的IE内存泄露分析

    Javascript 闭包引起的IE内存泄露分析

    Javascript 闭包引起的IE内存泄露分析,js_obj是一个DOM元素的引用,DOM元素它长期在网页当中,不会消失,而这个DOM元素的一属性
    2012-05-05
  • Javascript中的方法链(Method Chaining)介绍

    Javascript中的方法链(Method Chaining)介绍

    这篇文章主要介绍了Javascript中的方法链(Method Chaining)介绍,本文讲解了Javascript Method Chaining、Method Chaining 使用、Method Chaining VS prototype Chaining等内容,需要的朋友可以参考下
    2015-03-03
  • JS实现的合并多个数组去重算法示例

    JS实现的合并多个数组去重算法示例

    这篇文章主要介绍了JS实现的合并多个数组去重算法,涉及javascript数组遍历、判断、运算、排序等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • JavaScript制作简单的框选图表

    JavaScript制作简单的框选图表

    这篇文章主要为大家详细介绍了JavaScript制作一个简单的框选图表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • js简单的表拖拽

    js简单的表拖拽

    用js实现表格的拖拽效果代码
    2008-05-05
  • Validform表单验证总结篇

    Validform表单验证总结篇

    这篇文章主要介绍了Validform表单验证,包括通用表单验证方法的知识,本文给大家介绍的非常详细具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • JS 音频可视化插件Wavesurfer.js的使用教程

    JS 音频可视化插件Wavesurfer.js的使用教程

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件,本文主要记录它及其视觉效果插件Regions插件的使用方法,感兴趣的朋友跟随小编一起看看吧
    2018-10-10
  • javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码

    javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码

    这篇文章主要介绍了javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码,使用了html5的canvas技术,可呈现出带有3D效果的玫瑰花渐显效果,非常逼真自然,需要的朋友可以参考下
    2015-08-08
  • JavaScript的变量声明与声明提前用法实例分析

    JavaScript的变量声明与声明提前用法实例分析

    这篇文章主要介绍了JavaScript的变量声明与声明提前用法,结合实例形式分析了JavaScript变量声明与声明提前相关原理、用法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • 原生JS实现视频截图功能的示例代码

    原生JS实现视频截图功能的示例代码

    这篇文章主要为大家详细介绍了如何通过原生JavaScript实现视频截图功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
    2023-11-11

最新评论