miércoles, 30 de mayo de 2007

Presentación mas rápida de las paginas ASP .net


Este es un problema que se me presento con .net 2.0 utilizando AJAX (El paquete de Microsoft) Resulta que hago un página con una grilla de datos, un par de updatepanel para ingresar los datos y algún que otro control del Ajax Control Kit. Cuestión que me queda hermosa pero pequeño problema: Tarda 200 años en cargar.
Ta que lo tiró, no es tan grande!!!
Empiezo a investigar el problema y descubro viendo el fuente en el navegador un campo hidden que se llama “__VIEWSTATE” enormemente largo.
Lo primero que se me ocurre es comenzar a desactivar el viewstate en algunos controles,pero el caso es que necesitaba que conserven su valor.
La solución apareció haciendo el viewstate persistente en el Server. Esto se consigue agregando:

Protected Overrides ReadOnly Property pagestatepersister() As PageStatePersister
Get
Return New SessionPageStatePersister(Me)
End Get
End Property

Al comienzo en el código.
Por supuesto que sobrecargamos al server haciendo que conserve en su memoria el estado de los controles, pero aumentamos muchísimo la velocidad. Habra que evaluar en cada caso lo que conviene mas.

No hay comentarios: