js下利用控制器载入对应脚本

  我的思路是,在编写独立模块的时候,注意将这些方法集成到$.tools对象中,接下来,在页面中,调用控制器载入模块,并在载入完成后判断$.tools中对象的个数与预定义载入的模块数是否相等,如不等继续等待,如相等执行回调函数。

  

复制代码 代码如下:

  /*

  * LOADScript Mod

  * Params url1,url2,url3,url4,fn

  */

  jQuery.extend({

  loadMod: function(){

  var argleng = arguments.length,

  arglast = arguments[argleng-1],

  fn = false,

  queue = [],

  checknum = 0,

  timer = null

  // init

  if(jQuery.isFunction(arglast)){argleng = argleng -1;fn=arglast;}

  for (var i=0;i<argleng ;i++){

  queue.push(arguments[i]);

  }

  // getscript

  jQuery.each(queue,function(i,o){

  jQuery.getScript(o);

  });

  // check load ready?

  loadReady();

  function loadReady(){

  if(jQuery.tools != undefined){

  checknum = 0;

  $.each(jQuery.tools,function(i,n){

  if(jQuery.isPlainObject(n)){checknum++;}

  });

  }

  if(checknum != argleng){

  clearTimeout(timer);

  timer = setTimeout(loadReady, 100);

  }else{

  if(!!fn){fn.call(document.jQuery)}

  }

  }

  }

  });

  // 使用方法

  $.loadMod('a.js','b.js','c.js',function(){

  alert('success!');

  });