2021. 11. 9. 01:32ㆍIBSheet7/성능개선
한개의 IBSheet가 화면에 생성될때 보통 0.15~0.2 초 정도의 시간이 소요됩니다. 그런데 객체의 생성이 순차적으로(동기형태)로 이루어지다보니 화면에 10개의 시트를 만든다고 하면 화면 오픈 과정에서 1.5~2초 정도의 시간이 소요될 수 있습니다.
이러한 과정을 순차적이지 않게, 비동기적으로 생성하는 방법이 있습니다.
바로 IBQueue를 이용하여 생성 로직을 모두 큐에 넣고, 한번에 생성하는 방법입니다.
코드는 아래와 같습니다.
var initSheet1 = {};
initSheet1.Cfg = { SearchMode:2, MergeSheet:0, Page:20, FrozenCol:1, DataRowMerge:1 };
initSheet1.Cols = [
{Header:"NO","Type":"Seq","Hidden":0,"Width":30,"Align":"Center","ColMerge":1,"SaveName":"sSeq"},
{Header:"상태","Type":"Status","Hidden":1,"SaveName":"sStatus"},
{Header:"사원번호","Type":"Text","Hidden":1,"Width":80,"Align":"Left","SaveName":"사원번호S2","ColMerge":1,"EditLen":8},
{Header:"이수구분","Type":"Combo","Hidden":0,"Width":100,"Align":"Left","SaveName":"이수구분","ColMerge":1},
......
];
//시트 생성 함수를 Queue에 담는다.
IBQueue.AddItem({
context : window,
method : IBS_InitSheet, // Queue에 담아 실행할 함수
params : [mSheet1,initSheet1], // Queue에 담겨 실행될 함수에 들어갈 parameter 값
callback : function(obj) {
mySheet.SetEditable(0); //해당 함수 실행 후 callback 이 있으면 설정
}
});
var initSheet2 = {};
initSheet2.Cfg = { SearchMode:2, MergeSheet:0, Page:20, FrozenCol:1, DataRowMerge:1 };
initSheet2.Cols = [
{Header:"NO","Type":"Seq","Hidden":0,"Width":30,"Align":"Center","ColMerge":1,"SaveName":"sSeq"},
{Header:"상태","Type":"Status","Hidden":1,"SaveName":"sStatus"},
{Header:"사원번호","Type":"Text","Hidden":1,"Width":80,"Align":"Left","SaveName":"사원번호S3","ColMerge":1,"EditLen":8},
{Header:"일련번호","Type":"Text","Hidden":1,"Width":60,"Align":"Left","SaveName":"일련번호","ColMerge":1,"EditLen":100},
{Header:"가족관계","Type":"Combo","Hidden":0,"Width":70,"Align":"Left","SaveName":"가족관계","ColMerge":1},
.......
];
//시트 생성 함수를 Queue에 담는다.
IBQueue.AddItem({
context : window,
method : IBS_InitSheet,
params : [mSheet2,initSheet2],
callback : function(obj) {
}
});
//Queue에 담았던 시트를 실행한다. (모두 비동기 형태로 한꺼번에 실행된다.)
IBQueue.Start(function() {
//Queue의 모든 함수가 실행된 이후에 수행하고자 하는 callback
doSearch('mSheet1');
});
'IBSheet7 > 성능개선' 카테고리의 다른 글
트리 기능(TreeCol) 사용시 조회 성능 개선 (0) | 2021.12.06 |
---|---|
데이터 조회시 속도가 느린 경우 체크 (0) | 2021.11.09 |
성능저하요인 : 루프 돌리면서 값 설정건 (0) | 2021.11.01 |