DB의 연락처 정보를 표시하는 셀 테이블을 만들려고합니다. 표시하려는 테이블에 많은 행이 있습니다.gwt cellTable 클라이언트 측 캐싱
현재 데이터를 쉽게 표시 할 수있었습니다. 나의 단 하나의 문제는 내가 호출기에서 페이지를 변경할 때입니다. gwt는 이전에이 페이지를 요청했지만 데이터를 계속 요청합니다.
어떻게하면 클라이언트 쪽 캐싱을 할 수 있습니까? 여기
PS는 onRangeChanged의 코드 조각입니다 :
AsyncDataProvider<Contact> provider = new AsyncDataProvider<Contact>() {
@Override
protected void onRangeChanged(HasData<Contact> display) {
int start = display.getVisibleRange().getStart();
int end = start + display.getVisibleRange().getLength();
end = end >= DBHelper.size() ? DBHelper.size() : end;
List<Contact> sub = DBHelper.get(start, end);
updateRowData(start, sub);
}
};
편집 : 추로 난 결과와 먹으 렴의 일부를 캐시 것 (DBHelper 같은) 헬퍼 클래스를 만들 것을 제안
어떻게 DB 액세스를 건너 뛸 것인가? 그게 아니라 내가 의도 한대로, 나는 클라이언트 쪽에서 캐시를 가지고 indented, 도우미 클래스는 여전히 내게 클라이언트 -> 서버 호출을 구하지 않을거야.
내 원본 게시물에서 내 편집을 참조하십시오. – Urbanleg
@Urbanleg 일단 데이터를 가져온 다음 검색된 데이터를 통해 페이지를 가져 오려면 'AsyncDataProvider' 대신'ListDataProvider' 클래스를 사용해야합니다. 여전히 RPC 호출을 한 다음 결과를'ListDataProvider'에 전송할 수 있습니다. ListDataProvider는 호출 및 분류를 동 기적으로 처리합니다. – Churro