состояние сервера на стороне asp.net без сеансов - PullRequest
0 голосов
/ 09 октября 2009

Итак, я сделал все возможное, чтобы минимизировать мое viewstate для моего приложения ASP.net ajax, сжатие http, отключение viewstate в скрытых полях, но я хотел бы пойти дальше. Таким образом, после исследования кажется, что есть два подхода

а) использовать способ ASP.net 1.x, который использует LoadPageStateFromPersistenceMedium

б) или используйте ASP.net 2.x способ SessionPageStatePersister

Так что B выглядит не очень хорошо, потому что, если я правильно понимаю, состояние представления будет связано с идентификатором сеанса, и, поскольку мой сеанс может истечь по любому числу причин, я хочу этого не хотеть.

Так, каков наилучший подход к сохранению состояния представления на сервере, который зависит от сеансов?

Если это LoadPageStateFromPersistenceMedium и использует скрытые поля, то как мне вставить на страницу скрытое поле со случайным идентификатором?

Как определить, когда пора очищать файлы viewstate на сервере?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2010

Как насчет попытки Flesk ViewState Optimizer ?

Имеет несколько параметров, включая сохранение в сеансе, в базе данных и т. Д.

0 голосов
/ 09 октября 2009

Я думаю, вы должны серьезно рассмотреть вариант Session. Это оптимально для ресурсов, и даже если срок сеанса истекает, если ваш механизм аутентификации настроен на время ожидания сеанса, это не проблема.

http://professionalaspnet.com/archive/2006/12/09/Move-the-ViewState-to-Session-and-eliminate-page-bloat.aspx

В качестве запасного варианта вы могли бы реализовать базу страниц, которая помещает идентификатор сеанса в ViewState, проверяет его при обратной передаче и, если он отличается, чем выполняет какое-либо действие для восстановления.

Единственный другой вариант, который у вас есть, это создать собственный PageAdapter, который использует БД или другое хранилище данных.

...