2010-08-10 22 views
6

ViewState CachingAlmacenamiento en caché Viewstate?

Esta es una gran idea, pero está implementada para SharePoint. Me pregunto si hay una solución para las páginas regulares de asp.net, que hace lo mismo, almacena en caché los viewstates.

+0

Esto es bastante complicado. ¿Qué harías si tu servidor está bastante ocupado (por lo que hay muchos usuarios cuyo estado de vista de página se está almacenando en caché) y tu caché de estado de vista caducará antes de publicar tu formulario? –

+0

@Robert solo usa un medio de caché o persistencia que no caduca. –

Respuesta

8

¡De hecho es bastante simple! Sólo tiene que sustituir estos dos métodos en su página:

SavePageStateToPersistentMedium() 

LoadPageStateFromPersistenceMedium() 

Allí, se puede obtener el árbol de objetos ViewState, serializarlo lo que le apetezca y almacenar siempre que lo desee (Sesión, SQL, etc.), y en lugar de devolver todo el blob serializado al navegador, solo devuelva un ID único que puede usar para buscarlo nuevamente la próxima vez.

La idea se trata en detalle minucioso aquí: http://msdn.microsoft.com/en-us/library/ms972976.aspx

0

Es muy posible a través anulando la continuación dos métodos en

asp.net System.Web.UI.Page: 

SavePageStateToPersistentMedium() 

LoadPageStateFromPersistenceMedium() 

Mientras que en el primer método es necesario comprobar si el ViewState ya existe en el caché y si no lo guardas allí, en el segundo método puedes recuperarlo si ya está allí.

Puede concatenar el SessionID y el pageName como la clave para el caché viewStateKey.

Cuestiones relacionadas