javascript写的异步加载js文件函数

时间:2024-09-28 21:52:48 JavaScript 我要投稿
  • 相关推荐

javascript写的异步加载js文件函数

  自己用的加载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写的异步加载js文件函数】相关文章:

浅析jQuery 遍历函数javascript08-06

Javascript函数的定义和用法分析08-15

JavaScript中push(),join() 函数实例详解09-05

最常用的20个javascript方法函数09-10

JavaScript日期时间格式化函数08-29

JS AJAX前台如何给后台类的函数传递参数的方法07-08

JavaScript中常见的字符串操作函数及用法07-24

有关javascript实现的多个层切换效果通用函数示例10-07

JavaScript基于正则表达式数字判断函数06-14

Node.js如何响应Ajax的POST请求并且保存为JSON文件详解05-22