Калитка, стек страниц и использование памяти - PullRequest
4 голосов
/ 11 ноября 2008

Приложение Wicket сериализует и кэширует все страницы для поддержки компонентов с сохранением состояния, а также для поддержки кнопки «Назад» и других возможных причин. У меня есть приложение, которое использует setResponsePage для перехода от экрана к экрану. За довольно короткий промежуток времени сессия становится довольно большой, потому что все предыдущие страницы хранятся в сессии. По большей части мне нужно, чтобы сессия содержала только текущую страницу по понятным причинам и, возможно, последние 2 или 3 страницы, чтобы облегчить навигацию с помощью кнопки «Назад» браузера.

Могу ли я заставить страницу истечь после того, как я отошел от нее, и я знаю, что не хочу использовать кнопку «Назад» для этой версии страницы? В целом, каков рекомендуемый способ борьбы с ростом сеансов в Wicket?

Ответы [ 2 ]

7 голосов
/ 07 декабря 2008

http://apache -wicket.1842946.n4.nabble.com / Калитка-Session-растет слишком большой реальном быстро td1875816.html

Если на вашей странице используется множество объектов домена, которые в конечном итоге тесно связаны с другими объектами домена, обязательно избегайте сериализации для них!

Посмотрите на LoadableDetachableModel для обёртывания существующих объектов DataView и IDataProvider для отображения списка объектов домена

Вы не должны помещать доменные объекты в переменные экземпляра компонентов. Вы не должны делать ссылки на объекты домена окончательными, чтобы использовать их в анонимных подклассах. Вы не должны передавать простой список объектов домена в ListView.

Возможно, при создании подкласса WbeRequestCycle в вашем классе Application, вы можете получить контроль над временем жизни страницы в карте страницы ... хотя бы не пытались,

1 голос
/ 20 июня 2011

Во избежание засорения сеанса из-за непрерывной укладки байтового потока из-за сериализации в сеансе и накопления памяти, вы можете использовать съемные модели с помощью ловушек, чтобы организовать свое собственное хранение и восстановление в начале каждого запроса циклически, таким образом, вы получаете полный контроль над моделями, содержащими поток байтов страниц, которые не требуются в сеансе или которые можно просмотреть с помощью кнопки «Назад».

...