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.
Veamos en el siguiente ejemplo como se establecer un cache de salida y se limita su tiempo de expiración a 60 segundos:
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:
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.