Кэшировать viewstate?

Кэширование ViewState

Это отличная идея, но она реализована для SharePoint. Интересно, есть ли решение для регулярных страниц asp.net, что делает то же самое, кэширует окна просмотра.

2 ответа

Это на самом деле довольно просто! Вам просто нужно переопределить эти два метода на вашей странице:

SavePageStateToPersistentMedium()
LoadPageStateFromPersistenceMedium()

В нем вы можете получить дерево объектов ViewState, сериализовать его, как вы хотите, и сохранить его там, где хотите (сеанс, SQL и т.д.), и вместо того, чтобы возвращать весь сериализованный blob в браузер, просто верните уникальный идентификатор вы можете использовать его для поиска в следующий раз.

Идея здесь кропотливая: http://msdn.microsoft.com/en-us/library/ms972976.aspx


Это вполне возможно, переопределив ниже два метода в

asp.net System.Web.UI.Page:
SavePageStateToPersistentMedium()
LoadPageStateFromPersistenceMedium()

В первом методе вам нужно проверить, существует ли ViewState в кэше и если он не сохраняется там, во втором методе вы можете получить его, если он уже существует.

Вы можете объединить SessionID и имя_папки в качестве ключа для кеша viewStateKey.

licensed under cc by-sa 3.0 with attribution.