“Dotnet tips, SQL Server tips, Silverlight tips, AJAX tips...”
Read Experts reviews and compare prices to find the right desktop or laptop for you from the huge collection.
Si no tenemos cuidado de como "alimentamos" a nuestras páginas ASP .net, nos encontraremos que estas tienden a ganar peso rapidamente, es no puede traer un montón de dolores de cabeza como:
--> Las cosas van de pena cuando movemos el sitio a producción (todo en "localhost" iba tan bien...)..
--> Si utilizas partial rendering (AJAX), tus páginas dejan de ser usables, los usuarios finales se te quejaran de que la aplicación no hay dios que la use.
--> Tu servidor lo va a pasar mal teniendo que generar páginas enormes (he llegado aver proyecto ASP .net que generaban páginas de hasta dos megas).
--> Puede llegar a saturar la red de tu empresa.
¿ Tu sitio web genera páginas que están por encima de los 100 K's... por encima de los 500 K's... incluso por encima del mega? Oh oh, tienes un problema, lo que vamos a hacer para solucionarlo:
--> Un plan rápido de acción: haciendo unos pequeños ajustes podemos reducir el tamaño de nuestras páginas entre un 5 y un 30 % (depende de como estén montadas las páginas y el contenido que muestren).
--> Otras medidas para reducir el tamaño de tus páginas, estás te llevarán algo más de tiempo implementarlas, pero puede tener buenas mejoras aplicándolas.
Lo primero de todo...¿ Como puede medir el peso de mi página o post parciales? Bajate Fiddler, es un sniffer gratuito que te permitirá chequear el tamaño de las peticiones y respuestas de tu sitio web.
Vale, ya tenemos la báscula, vamos a comenzar con el plan de acción:
<system.web> <compilation debug="false">
(*) En tu entorno de desarrollo si tienes que tener esta opción a true para poder debuggear.
(**) Una buena idea es hacer una aplicación de consola que quite los espacios de forma automática (le das como parametro una ruta y te busca en las subcarpetas ASPX/ASCX para eliminarle los espacios en blanco).
<asp:ContentPlaceHolder runat="server" ID="phSidebar">
<asp:ContentPlaceHolder runat="server" ID="sd">
(***) Tendrás que hacer un find/replace de todos estos ID's en las páginas hijas (bueno y asegurarte de que ningún espabilado a harcodeado los ID's en javascript en vez de utilizar CLIENTID).
Es hora de subir los cambios a tu sitio y chequear con Fiddler cuanto peso has perdido.
¿ Necesita seguir bajando? Vamos a por el plan B (un poco más de curro, un poco más rendimiento):
--> ViewState: Elimina el Viewstate de tus Gridview (a ser posible de toda la página). ASP .net 2.0 trae el ControlState, esto hace un poco más fácil poder eliminar el ViewState (por ejemplo en un GridView readonly si quitas el ViewState, las funcionalidades de ordenar y paginación seguirán funcionando). Ten cuidado con esto, prueba bien los controles a los que les quites el ViewState.
--> DOM: Si parte del HTML que quieres generar no quieres que viaje en los post, generalo en el lado de cliente utilizando javascript.
--> listboxes / combo's mal diseñadas funcionalmente:Evita tener listboxes, combo's, u otros controles similares con más de 80 entradas, esto reduce la usabilidad de tus páginas, y además incrementa el paso. Una opción es cambiar esa combo por un AutCompleteExtender de AJAX... si tu cliente se encabezona, una opción es generar los items via servicio web + javascript.