Quiero poder establecer un tiempo de caducidad prolongado para ciertos elementos que un usuario descarga a través de la solicitud GET.¿Cuál es la mejor manera de trabajar con el encabezado Expires en ASP.NET MVC?
Quiero decir 'esto es bueno durante 10 minutos' (es decir, quiero establecer un encabezado Expires por más de 10 minutos). Las solicitudes son fragmentos de HTML que se muestran en la página a través de AJAX y son buenos para la sesión del usuario. No quiero volver al servidor y obtener un 304 si los necesitan de nuevo. Quiero que el caché del navegador me dé el mismo elemento al instante.
Encontré un artículo que tiene casi un año aproximadamente MVC Action filter caching and compression. Esto crea un ActionFilter personalizado para cambiar el encabezado expira. Ya estoy usando el filtro de compresión, que funciona muy bien para algunos css personalizados que estoy generando (¡tasa de compresión del 94%!).
Tengo dos preocupaciones principales:
1) ¿Realmente tengo que utilizar este método. Estoy de acuerdo si lo hago, pero ¿realmente no hay funcionalidad en MVC o la funcionalidad de OutputCache para hacer esto por mí? En ASP.NET 'tradicional', siempre configuré el encabezado Expires manualmente, pero ya no podemos hacer eso, al menos no en el controlador.
2) Si utilizo este método de filtro - ¿va a interferir en absoluto con la política de OutputCache? Que deseo poder controlar en web.config. Estoy pensando que los dos son mutuamente exclusivos y que no querrías los dos, pero no estoy del todo seguro.
@craig gracias por sus comentarios. Supongo que una regla general con respecto al n. ° 2 es que si la vista generada es muy simple (es decir, no tiene acceso a la base de datos), entonces caducar puede ser todo lo que se necesita. si se requieren diez llamadas a métodos web, entonces debería usar OutputCache. a veces quieres caras Y colas correctas :-) –
Considera: si 10 personas (en computadoras diferentes) solicitan tu página 10 veces cada una, Caduca por sí solo significa que tu acción se ejecuta 10 veces y el servidor maneja 10 solicitudes. El almacenamiento en caché solo significa que su acción se ejecuta una vez y el servidor maneja 100 solicitudes. Vence y almacena en caché juntos significa que su acción se ejecuta una vez y el servidor maneja 10 solicitudes. –