이것은 현재로서는 나에게 일어난 일이며, 당신이 도울 수 있기를 바랍니다. 각 모듈의 질서있는 호출 방법에 대한 책임을지며, 모두 하나의 이벤트 준비 상태로 호출됩니다. 경우에 어떤 수준 당신은 도장과는 ExtJS와 같은 라이브러리는 아이디어이를 관리하는 방법에서 다른
// Call the initial organizer of each modules
var modules = (function(){
var level_0 = new Array();
var level_1 = new Array();
var level_2 = new Array();
return {
add: function(method, level){
var returned = true;
try{
switch(level){
case 0:
level_0.push(method);
break;
case 1:
level_1.push(method);
break;
case 2:
level_2.push(method);
break;
};
}catch(ex){returned=false;}
return returned;
},
callAll: function(){
var returned = true;
var returned_0 = true;
var returned_1 = true;
var returned_2 = true;
try{
returned_0 = this.call(0);
returned_1 = this.call(1);
returned_2 = this.call(2);
}catch(ex){returned=false;}
return ((returned && returned_0 && returned_1 && returned_2) || false);
},
call: function(level){
var returned = true;
var level_call = null;
try{
switch(level){
case 0:
level_call = level_0;
break;
case 1:
level_call = level_1;
break;
case 2:
level_call = level_2;
break;
};
if (level_call!=null)
for(xcall in level_call)
level_call[xcall].call();
}catch(ex){returned=false;}
return returned;
}
};
})();
//in each file JS with ini method in module
modules.add(function(){alert("method file/module A in level 1 a");}, 1);
modules.add(function(){alert("method file/module B in level 1 b");}, 1);
modules.add(function(){alert("method file/module C in level 0 a");}, 0);
modules.add(function(){alert("method file/module D in level 0 b");}, 0);
modules.add(function(){alert("method file/module E in level 2 a");}, 2);
modules.add(function(){alert("method file/module F in level 2 b");}, 2);
modules.add(function(){alert("method file/module G in level 2 c");}, 2);
modules.add(function(){alert("method file/module H in level 0 c");}, 0);
// single call to the event ready
$(function(){
//call all
modules.callAll();
// OR
//call in other order
modules.call(0);
modules.call(2);
modules.call(1);
});
관련 항목 : http://stackoverflow.com/questions/15390/best-practices-for-managing-and-deploying-large-javascript-apps –