Сохранение состояния JSF изначально на сервере и передача тайм-аута сеанса клиенту?
Существуют ли какие-либо методы сохранения состояния, которые позволили бы приложению JSF изначально сохранять данные о состоянии на сервере, но после истечения интервала времени сеанса это состояние передается клиенту, так что приложение всегда реагирует даже после того, как время ожидания сеанса на сервере и памяти лучше удалось на сервере?
Или каким-либо образом это может быть реализовано? Но я ожидаю, что это должно быть частью спецификации JSF!
редактировать
После предложения BalusC меня очень впечатлили принципы JSF без гражданства и текущая реализация. Если кто-то еще заинтересован в добавлении JSF без сохранения состояния в спецификацию JSF, подумайте над тем, чтобы взглянуть на эту проблему или проголосовать за нее.
JSF без сохранения состояния обеспечивает огромное повышение производительности для некоторых выгод, таких как невозможность динамического создания представлений (например, с помощью привязки, тегов JSTL и т. Д.) Или его изменения.
Режим работы JSF без сохранения состояния был бы невероятно полезен для приложений и архитектур с высокой нагрузкой:
http://industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per-request-memory-overhead/
Ранее это было предложено Джейкобом: http://weblogs.java.net/blog/jhook/archive/2006/01/experiment_goin.html
Это помогло бы JSF избавиться от стигмы "медленного и нехватки памяти" и помочь не отставать от современных технологических тенденций (архитектуры без сохранения состояния).
1 ответ
Как это технически возможно? Сервер никогда не сможет заранее предсказать, создаст ли следующий запрос новый сеанс, и, таким образом, в ответе текущего запроса необходимо использовать сохранение состояния на стороне клиента вместо сохранения состояния на стороне сервера. Если вам когда-нибудь удастся реализовать его с помощью простого JSP/Servlet, не стесняйтесь опубликовать запрос на расширение спецификации JSF.
Просто используйте сохранение состояния на стороне клиента и убедитесь, что частичное сохранение состояния включено. Издержки относительно незначительны по сравнению с полным сохранением состояния.
Обратите внимание, что можно использовать JSF без сохранения состояния. Смотрите также этот блог. Единственное преимущество в том, что вы не можете создавать представления динамически (например, binding
, JSTL-теги и т. Д.), А также не манипулируйте им после создания (например, путем добавления / удаления дочерних компонентов).