2008-09-17 3 views
5

첫째, 약간의 배경 : ScrollableDataTable 및 성능을 사용하여RichFaces ScrollableDataTable 컨트롤의 성능을 향상 시키려면 어떻게해야합니까?

내가 288 행과 8 열 (2304 개 기록)와 데이터 세트를 표시하고있어 원하는 수 많은 나뭇잎. 컨트롤을 다시 렌더링하는 AJAX 요청은 DataTable 컨트롤을 사용하여 동일한 데이터를 렌더링 할 때 7 초에 비해 완료하는 데 20 초 정도 걸립니다.

서블릿 필터 및 JavaScript를 통해 캡처 된 메트릭은 사실상 모든 처리 시간이 클라이언트 측에서 소비되었음을 보여줍니다. 19.87 초의 요청 중 3.87 초가 서버에 사용되었으며 데이터를 쿼리하고 정렬하는 데 6 초도 채 걸리지 않았습니다.

DataTable 컨트롤로 전환하면 요청, 응답 및 렌더링주기가 ScrollableDataTable에서 보는 것의 1/3로 줄어들지 만 몇 가지 중요한 기능이 제거됩니다.

그리고 지금 질문 : ScrollableDataTable와

가지고 다른 사람의 경험 성능 문제? 고정 된 컬럼과 2 축 스크롤을 사용하여 JSF/RichFaces에서 많은 양의 테이블 데이터를 렌더링하는 가장 효율적인 방법은 무엇입니까?

업데이트 : 우리는 사용자 지정 컨트롤을 작성 결국

. 렌더링 된 구성 요소와 생성 된 JavaScript에 대한 완전한 제어를 통해 DataTable에 필적하는 응답 시간을 얻을 수있었습니다. 저는 Zack에 동의합니다 - 페이지 매김은 정답입니다.

답변

1

병목 현상은 JSF 수명주기의 "렌더링 응답"단계에서 발생할 가능성이 큽니다. 뷰에 너무 많은 구성 요소를 한 번에 렌더링하려고합니다.

제 제안은 페이지 매김을 사용하는 것입니다. 한 번에보기의 작은 부분을 렌더링하므로 성능이 크게 향상됩니다.

것은 당신의 rich:dataTablerows 속성 세트를 가지고 있는지 확인하십시오 - 당신이 어떤 열 필터링을 수행하는 경우 - 날짜 테이블도 매기기가 rich:datascroller 해당 부동산 reRender="paginator"이 있는지 확인하십시오.

0

나는 오래 전 비슷한 문제가 있었으며 애플릿을 작성하여 livescript를 사용하여 페이지와 상호 작용하는 데이터를 표시했습니다. 내 성능 문제는 당신이 본 것과 같습니다. 클라이언트는 테이블 데이터를 렌더링하는 데 30 초 이상 걸렸고 서버는 2 초 이내에 내 응답을 돌 렸습니다.

0

이것은 테이블을 렌더링하기 위해 생성 된 자바 스크립트의 버그처럼 들립니다. 다른 브라우저에서 페이지를 사용해 보셨습니까? 어떤 JSF 구현 (RI 또는 ​​MyFaces 또는 다른 것)을 사용하고 있습니까?

관련 문제