asp.net - Optimizaciones de Viewstate
asp.net-ajax webforms (6)
@silky tiene razón, deshabilítelo siempre que pueda. Tratamos de mantenerlo desactivado en tantos controles como sea posible.
Además, una vez que esté usando lo menos posible, podría valer la pena considerar poner algo como esto en sus páginas (o mejor en una clase de página base)
Protected Overrides ReadOnly Property PageStatePersister() As PageStatePersister
Get
Return New SessionPageStatePersister(Me)
End Get
End Property
Pero eso depende de cuántos usuarios tenga y de cuánta memoria tenga, y asume que está utilizando sesiones.
Ah, y en C # es:
protected override PageStatePersister PageStatePersister
{
get
{
return new SessionPageStatePersister(this);
}
}
Hy,
Estoy interesado en algunos métodos generales de optimización en un proyecto asp.net ajax para Viewstate
(por ejemplo, para reducir el tamaño de viewstate, o simplemente acelerar el viewstate de alguna manera, u otros esto debería ser una discusión general :-)).
Entonces, ¿qué tipo de optimización usas para ViewState? ¿Qué posibilidades se ofrecen en Asp.net o Ajax framework?
Deshabilitar el estado de vista de los controles que no necesita explícitamente, por ejemplo, hay muchos controles en su página, que pueden no requerir viewstate, como menús, algunos hipervínculos, algunas etiquetas de estadísticas de visualización, etc., desactívelos un poco.
Otra cosa que puede hacer es reducir la longitud del ID de control, esto mejorará el tamaño de la página a un nivel mucho mejor.
Sus ID de control son como seguir
PageContainer1_MyLoginContainerUserControl1_MyLoginForm1_MyUsername1
PageContainer1_MyCustomerDataGrid1_item0_MyCustomerNameLabel
Sé que suena un poco mal, pero si observas que los elementos de la grilla / lista ponen tantas identidades de control grandes como esta, notamos que al reducir ciertos caracteres en la identificación también ayuda a mejorar el tamaño de la página. En list / gridview etc mejora esto en un 30% a 40%, también los controles de usuario anidados son malos, cuando realmente no crees que necesites la ID de control nunca más, solo ponle 3 letras big max.
La mejor optimización: almacene menos cosas en ella.
Pero debes ser específico. ¿Estás teniendo un problema? Si es así, ¿con qué controles? ¿Tu propio? ¿Otros? Por favor expande
Se me puede criticar por esto, pero en ciertos casos puede almacenar viewstate en sesión simplemente anulando los métodos de Page .
Para equilibrar mi karma, también sugiero que abandone ambos viewstate y sesión en futuros proyectos;), por ejemplo, probando Asp.NET MVC.
Si nunca ha leído VERDADERAMENTE la comprensión de ViewState , hágalo primero.
En cuanto a AJAX ayudando con ViewState, solo estoy especulando aquí, pero si tiene toda la página en un UpdatePanel, puede deshabilitar ViewState para toda la página
Bueno, pude reducir mis viewtes de 200-300 KB a 62 BYTES manteniéndolo en el servidor y simplemente pasando un GUID de ida y vuelta.
He escrito un artículo sobre cómo hacer esto al extender HiddenFieldPageStatePersister al que puede referirse: