연속적으로 동일한 ajax를 동일한 조건으로 호출시
선행호출된 callback이 제대로 return function이호출 되기전에
다시 호출되면 선행호출된 callback 함수의 리턴값은 직전호출의 결과값이 나오는 경우가 자주있다.
첫번째 콜
null -> error
1
두번째 콜
1 -> 잘못된 경우
2
혹은
2 -> 정상인 경우
2
onChange : function(event)
{
var me = this;
switch (event.target.id)
{
case "rdoTwType" :
case "rdoTwCmps" :
// 신규작성시 모듈변경시 선택한 옵션 초기화
if (me.formula("enabledRdoTwType"))
{
//me.set("twh.tw_cmps_cd", "10"); // 제품구성
me.set("twh.tw_dvlp_cd", null); // 개발유형
me.set("twh.tw_usg_cd", null); // 제품용도
me.set("twh.tw_vlum_cd", null); // 용량
}
me.onPageSelect();
break;
case "rdoTwDvlp" :
case "rdoTwUsg" :
case "rdoTwVlum" :
if (UT.isNotEmpty(me.currentModule) && UT.isFunction(me.currentModule.resetData))
{
me.currentModule.resetData();
}
me.domHost.applyFormula("enabledBtnRcly"); // 분리배출 버튼제어
break;
}
},
onPageSelect : function()
{
var me = this;
var _moduleID = "";
// 단품인경우
if (me.twh.tw_cmps_cd == "10")
{
switch (me.twh.tw_type_cd)
{
case "10" :
_moduleID = "twType10";
break;
case "20" :
_moduleID = "twType20";
break;
case "30" :
_moduleID = "twType30";
break;
case "40" :
_moduleID = "twType40";
break;
}
}
else
{
_moduleID = "dummyModule";
}
me.$.pagesTW.selectItem(me.$[_moduleID], function(module)
{
me.currentModule = module;
if (UT.isNotEmpty(module) && UT.isFunction(module.load))
{
// 품목분류, 제품구성값의 동시 셋팅시 이중호출 방지
if (!UT.nvl(me.subModuelCalled, false))
{
me.subModuelCalled = true;
module.load(UT.copy(me.twh));
// 선행호출이 완료될때까지 Delay (1초사이 동시호출방지)
setTimeout(function()
{
me.subModuelCalled = false;
}, 1000);
}
}
});
},