Cargando



Manejo de cache a fondo con ASP.NET MVC

En este tutorial veremos los distintos tipos de cache en una aplicación y las diferentes técnicas que tenemos disponible para su aplicación en el servidor y en ASP.NEt MVC.


ago 29 2014 05:13
Avanzado
sep 19 2014 05:28

Cache de salida



Si bien el almacenamiento en cache de elementos que se dan con las operaciones es bastante importante, desde nuestra aplicación también podemos pensar en hacer cache de elementos menos complejos, pero que si sumamos a las demás técnicas su aporte podremos lograr un mayor rendimiento de nuestra aplicación.

En esta ocasión nos referimos al cache de salida, que nos permite almacenar en las aplicaciones de ASP.NET los elementos menos complejos como por ejemplo el HTML de las vistas, haciendo que se carguen de forma más rápida desde la memoria, por supuesto se tiene un tiempo de expiración para que cuando hayan cambios se vean reflejados.

En esta sección veremos de que trata el cache de salida y como utilizarlo, para que nuestras aplicaciones hechas en ASP.NET MVC sean mucho más rápidas y dinámicas.

El cache de salida


La mayor parte del tiempo cuando hablamos de cache siempre nos imaginamos poder hacer cache de consultas SQL, de resultados y todos los tipos de elementos que se manejan que consumen recursos de manera frecuente del servidor.

Sin embargo casi nunca recordamos que el HTML también resulta una carga, que aunque más pequeña si sumamos miles de peticiones pueden afectar el rendimiento en nuestra aplicación; para evitar esto podemos emplear el cache de salida que almacena en memoria el HTML generado y lo sirve directamente desde ahí, evitando así que tengamos que construirlo con cada petición.

OutputCache
Para trabajar este tipo de cache contamos con la propiedad OutputCache con la cual podemos especificar en nuestro controlador los elementos que se van a almacenar en la memoria y con sus diferentes atributos podemos establecer algunas opciones adicionales.


Veamos en el siguiente ejemplo como se establecer un cache de salida y se limita su tiempo de expiración a 60 segundos:

asp_cache_salida.jpg


En este código cada vez que hacemos una petición a la vista, solo veremos que cambia cada 60 segundos, de esta forma servimos una versión almacenada en memoria la mayor parte del tiempo hasta que expira y se renueva, ahorrando así una gran cantidad de recursos si hacemos una suma de miles de peticiones.

¿Dónde almacenamos el cache de salida?


Por defecto si no le especificamos una locación a nuestro cache de salida él puede almacenarse en 3 lugares, en el navegador del cliente, en nuestro servidor proxy o en nuestro servidor web, es por ello que es recomendable establecer directamente en el objeto con el cual creamos el cache la locación.

Para ello podemos utilizar cualquiera de estos valores:

Any
Es la configuración por defecto y elegirá la opción que vea más factible.

Client
Se almacena la información en el navegador del cliente.

Downstream
Se almacena en el flujo de descarga de la información.

Server
Como su nombre lo indica lo almacenamos en el servidor.

None
En este caso no almacenamos nada.

ServerAndClient
En esta opción la almacenamos en ambos lugares tanto el servidor como el cliente.


Cabe destacar que ninguna opción es superior a la otra, simplemente cada una tiene un propósito dentro de nuestra aplicación, por ejemplo si tenemos una página donde mostramos el nombre del usuario, si le hacemos cache en el servidor otros usuarios verán el nombre del primero que generó el contenido, por lo tanto en ese caso es ideal almacenar la salida en cada cliente.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X