JSF: NUMBER_OF_VIEWS_IN_SESSION и кнопка возврата - PullRequest
0 голосов
/ 22 сентября 2011

У меня проблема с памятью в приложении из-за высокого потребления памяти AJAX4JSF.Поэтому мы решили установить для NUMBER_OF_VIEWS_IN_SESSION значение 1 и поставить под угрозу функциональность кнопки «Назад».

Однако после добавления следующего в файл web.xml кнопка «Назад» все еще работает.

<context-param>
  <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
  <param-value>1</param-value>
</context-param>

Я хотел бы понять: как кнопка «Назад» все еще работает? !!Я читал, что установка NUMBER_OF_VIEWS_IN_SESSION в 1 приводит к потере функциональности кнопки возврата браузера.

Заранее благодарен за помощь.

1 Ответ

0 голосов
/ 22 сентября 2011

Я читал, что установка NUMBER_OF_VIEWS_IN_SESSION на 1 теряет функциональность кнопки возврата браузера.

Либо эта статья, которую вы читаете, является чепухой, либо вы неверно истолковали эту статью. Функцию кнопки назад нельзя никоим образом контролировать со стороны сервера.

Возможно, эта статья имела в виду тот факт, что вы больше не можете отправить страницу, которая обслуживается из кэша браузера кнопкой назад, потому что это приведет к ViewExpiredException. Вам нужно создать Filter, который добавляет заголовок ответа, чтобы браузер не кэшировал страницу, чтобы при нажатии кнопки «Назад» на странице запускался новый запрос GET, чтобы вы не получили ViewExpiredException больше при отправке формы на этой странице.

Что касается высокого потребления памяти, я подозреваю, что ваша проблема вызвана чем-то другим. Возможно, вы просто копируете слишком много данных в бине представления или области видимости. Внимательно прочтите это: Почему JSF сохраняет состояние компонентов пользовательского интерфейса на сервере? Наконец, но не в последнюю очередь, запустите профилировщик, прежде чем делать предположения.

...