Как уменьшить javax.faces.ViewState в JSF - PullRequest
17 голосов
/ 23 сентября 2008

Каков наилучший способ уменьшить размер скрытого поля viewstate в JSF? Я заметил, что мое состояние просмотра составляет примерно 40 КБ, это передается клиенту и обратно на сервер при каждом запросе и ответе, особенно поступающем на сервер, что является значительным замедлением для пользователя.

Моя среда JSF 1.2, MyFaces, Tomcat, Томагавк, RichFaces

Ответы [ 3 ]

16 голосов
/ 04 октября 2008

Вы пробовали установить сохранение состояния на сервере? Это должно только отправить идентификатор клиенту и сохранить полное состояние на сервере. Просто добавьте следующее в файл web.xml :

 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
11 голосов
/ 23 сентября 2008

Если вы используете MyFaces, вы можете попробовать этот параметр для сжатия состояния просмотра перед отправкой клиенту.

<context-param>
    <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name>
    <param-value>true</param-value>
</context-param> `
0 голосов
/ 24 сентября 2008

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

...