¿Qué sucede cuando el usuario vuelve a visitar la página? Esta debería cargar más rápido ya que estos elementos siguen siendo los mismos por lo que no deberían cambiar, el problema está en que si no le indicamos al navegador por cuanto tiempo los debe mantener, es probable que si el usuario vuelve a visitar la página en una hora todo sea como la primera vez.
El futuro distante
El futuro distante es una frase que escuchamos mucho cuando hablamos de cache de contenidos y de navegador, esto es porque se refiere a la cantidad de tiempo que debe el navegador mantener el contenido sin necesidad de volverlo a descargar con cada visita del usuario.
Normalmente un valor adecuado para que el navegador mantenga el contenido es 1 mes, sin embargo dependiendo del tipo de aplicación y su frecuencia de actualización se pueden ver casos de hasta un año.
Establecer la vida del cache en la aplicación
ASP.NET MVC nos ofrece la posibilidad de establecer la vida y el vencimiento del cache de nuestra aplicación a través de algunas instrucciones que luego de la interpretación del servidor se transforman en cabeceras HTTP que le indican al navegador la información necesaria.
Para ello podemos valernos de los métodos Cache.SetExpires() y Cache.SetMaxAge(), donde el primero indica el tiempo o fecha cuando debe morir el cache y el segundo hasta cuándo debe mantenerse, para su aplicación en código podemos hacerlo como vemos en la siguiente imagen:
Cabe destacar que debemos solo utilizar uno de estos métodos a la vez ya que son redundantes, solo que según nuestras necesidades requeriremos de uno u otro.
Cambio en el contenido
Cuando hay un cambio en el contenido cacheado y necesitamos que se muestre, necesitamos decirle al navegador que cargue este nuevo contenido, generalmente esto lo hacemos cambiando de alguna forma la URL del mismo, para ello podemos trabajar con versiones de los contenidos, así si tenemos un archivo scripts-front.js, para que se refleje el cambio podemos cambiarlo por scripts-front-v2.js, de esta forma el navegador detectará que es un nuevo elemento y así lo volverá a cargar.
Con esto finalizamos este tutorial, hemos visto cómo podemos aumentar la velocidad de nuestra aplicación al permitir que el navegador sepa que no debe cargar más de una vez los recursos.