[ Grid 튜닝5 - refreshBody ]

 

1. Grid Dynamic 생성 시 튜닝

    . 이슈

      - 보통 Grid Header, Body, Cell등을 dynamic하게 생성할 때 시간이 아주 많이 소비된다.

        이유가 appendContentsCol() 등의 API 를 사용하게 되면 이때마다 grid를 다시 그리기 때문에

        만약, cell을 20개 생성한다면 grid를 20번 새로 그린다는 의미가 될 수 있다.

    . 해결방법

      - Grid.set_enableredraw(false);

      - grid dynamic하게 생성

      - Grid.set_enableredraw(true);

    . 이유

      - set_enableredraw(false); 를 하게 되면 이때 부터 그리드를 그리지 않는다.

         그런 후 grid의 모든 cell, expr등을 입힌 후

         다시 set_enableredraw(true);를 해주면 Grid를 한번만 그리게 된다.

 

2. Dataset변경 시 Grid튜팅

    . 이슈

      - 화면에 상당히 많은 자료가 변경이 되고, expr등이 많이 변경되어야 되는 경우

         grid에 표현이 되어야 되는 이때 속도가 상당히 느려진다.

    . 해결방법1

      - Grid.set_enableredraw(false);

      - data 변경 및 expr변경

      - Grid.set_enableredraw(true);

    . 이유

      - set_enableredraw(false); 를 하게 되면 이때 부터 그리드를 그리지 않는다.

         그런 후 dataset에 모든 자료가 변경 된고, expr등을 변경한 후

         다시 set_enableredraw(true);를 해주면 Grid를 한번만 그리게 된다.

     . 해결방법2

      - Grid.refreshBody(false);

      - data 변경 및 expr변경

      - Grid.refreshBody(true);

     . 이유

       - refreshBody() API가 set_enableredraw()보다 속도가 빠르다.

       - set_enableredraw()는 grid를 처음부터 전체를 다시 그린다.

       - refreshBody()는 변경된(?)부분만 다시 그린다.

       - 참고 : refreshBody()는 변경된(?) 부분만 그리기 때문에 dynamic 하게 grid를 생성할 때는 사용하면 안된다.

                   반드시 dataset 의 oncolumn changed event에서만 가능하다.

 

3. refreshBody() API 의 prototype

    

 

     - nexacro14lib > component > Grid > Grid.js

     

'Nexacro-이론 및 튜닝 > dataset.grid.튜닝' 카테고리의 다른 글

Dataset 튜닝4 - alasql  (0) 2017.11.15
Dataset 튜닝3 - set,get  (1) 2017.11.15
Dataset 튜닝2 - Hashmap방식  (0) 2017.11.15
Dataset 튜닝1 - 정의  (0) 2017.11.15
Posted by 농부지기
,