성능저하요인 : 루프 돌리면서 값 설정건
2021. 11. 1. 13:35ㆍIBSheet7/성능개선
아래와 같이 루프를 돌면서 특정 조건에 해당하는 값(체크박스 타입) 설정하는 코드는
반복되는 횟수만큼 Dom객체 접근 및 체크박스 css변경이 일어남으로 엄청난 성능저하를 불러일으킨다.
// asis for(var i=ibsStdOlgDtl.GetDataFirstRow(); i<=ibsStdOlgDtl.GetDataLastRow(); i++){ if(minVal <= ibsStdOlgDtl.GetCellValue(i, "olgMer") && ibsStdOlgDtl.GetCellValue(i, "olgMer") <= maxVal) { ibsStdOlgDtl.SetCellValue(i, "ibCheck",checkedVal) ; } } |
따라서 IBSheet에서 제공하는 RangeText 또는 RangeValue 함수를 통해 일괄적으로 값을 설정하는 방법을 권장 하며
사용방법은 다음과 같다.
// tobe var firstRow = ibsStdOlgDtl.GetDataFirstRow(), lastRow = ibsStdOlgDtl.GetDataLastRow(), nOrlMerIdx = ibsStdOlgDtl.SaveNameCol("olgMer"), nIbCheckIdx = ibsStdOlgDtl.SaveNameCol("ibCheck"); var arrOlgMer = ibsStdOlgDtl.GetRangeText(firstRow, nOrlMerIdx, lastRow, nOrlMerIdx).split("^"), arrTemp = []; for(var i=0; i<arrOlgMer.length; i+=1){ if(minVal <= arrOlgMer[i] && arrOlgMer[i] <= maxVal) { arrTemp[i] = checkedVal; } } // 체크박스 일괄적으로 처리 ibsStdOlgDtl.SetRangeText(arrTemp.join("^"), firstRow, nIbCheckIdx, lastRow, nIbCheckIdx); |
'IBSheet7 > 성능개선' 카테고리의 다른 글
트리 기능(TreeCol) 사용시 조회 성능 개선 (0) | 2021.12.06 |
---|---|
한 화면에 다수의 시트 생성시 성능 향상 방법 (0) | 2021.11.09 |
데이터 조회시 속도가 느린 경우 체크 (0) | 2021.11.09 |