2008-11-11 2 views
4

개찰판 응용 프로그램은 상태 유지 구성 요소를 지원하고 뒷주기를 지원하기 위해 모든 페이지를 직렬화하고 캐시합니다. setResponsePage를 사용하여 화면에서 화면으로 이동하는 응용 프로그램이 있습니다. 이전의 모든 페이지가 세션에 저장되어 있기 때문에 꽤 짧은 시간 동안 세션이 상당히 커집니다. 대부분의 경우, 현재 페이지를 포함하기위한 세션이 필요하며 분명한 이유로 브라우저의 뒤로 버튼을 사용하여 쉽게 탐색 할 수 있도록 마지막 2 ~ 3 페이지가 필요합니다.개찰구, 페이지 스택 및 메모리 사용량

페이지를 탐색 한 후에 페이지를 만료시킬 수 있습니까? 해당 페이지 버전으로 돌아 가기 버튼을 사용하지 않으려 고합니다. 더 일반적으로 Wicket에서 세션 증가를 처리하기 위해 권장되는 방법은 무엇입니까?

답변

7

http://apache-wicket.1842946.n4.nabble.com/Wicket-Session-grows-too-big-real-fast-td1875816.html

당신은 결국 긴밀하게 다른 도메인 객체에 연결되어 페이지에 도메인 객체의 부하를 사용하는 경우, 이들에 대한 직렬화를 피하십시오!

이 domaing에 포장하는 LoadableDetachableModel에서보세요하는 도메인의 목록을 표시 DataView를하고 IDataProvider 개체를하는 것은

네가없는 물건 도메인이 구성 요소의 인스턴스 변수에 오브젝트 말라 객체. 도메인 개체 참조를 익명의 하위 클래스에서 사용하기 위해 마지막으로 참조하지 마십시오. 단순한 도메인 개체 목록을 ListView에 전달하지 마십시오. 귀하의 응용 프로그램 클래스에 WbeRequestCycle를 서브 클래스 때

아마, 당신은

+2

링크가 더 이상 작동하지 않습니다. / – krtek

1

하지만 세션으로 인해 지속적으로 스택에 질식 방지하기 위해, ... 그것을 시도하지 않은 페이지지도에서 페이지의 수명을 제어 할 수 있습니다 세션 및 메모리 사용량 누적에 직렬화로 인한 바이트 스트림, 각 요청주기의 시작 부분에서 자체 저장소 및 복원을 준비하기 위해 후크를 사용하여 분리형 모델을 사용할 수 있습니다. 이렇게하면 바이트 스트림이 포함 된 모델을 완벽하게 제어 할 수 있습니다 세션에서 필요하지 않은 페이지 또는 '뒤로'버튼을 통해 탐색 할 수있는 페이지