Compartir a través de


Almacenar en caché páginas de ASP.NET

ASP.NET permite almacenar todo el contenido de las páginas dinámicas en la caché de componentes compatibles con HTTP 1.1, como exploradores, servidores proxy y el servidor Web en el que resida la aplicación. Esto constituye un método eficaz para aumentar el rendimiento de las aplicaciones Web. Esta técnica, llamada almacenamiento en la caché de resultados, permite que en las siguientes ocasiones en que se solicite una página determinada, la respuesta provenga de la caché, de modo que no sea necesario ejecutar de nuevo el código que creó la página inicialmente. Si se utiliza esta técnica para almacenar en la caché las páginas de acceso más frecuente del sitio, puede aumentar notablemente el rendimiento del servidor Web, que normalmente se mide en solicitudes por segundo.

Cuando manipule el almacenamiento de una página en la caché de resultados, puede elegir entre una API declarativa de nivel superior o una API de programación de nivel inferior. En el primer caso debe incluir la directiva @ OutputCache en el archivo .aspx de la página. La directiva @ OutputCache puede satisfacer casi todos los requisitos habituales cuando se desea almacenar una página en la caché de resultados. La directiva siguiente, incluida en un archivo .aspx, establece una caducidad de 60 segundos para la versión en la caché de resultados de una página generada dinámicamente.

<%@ OutputCache Duration="60" VaryByParam="None" %>

PRECAUCIÓN   Cuando se utiliza la directiva @ OutputCache, son necesarios los atributos Duration y VaryByParam. Si no se incluyen, se producirá un error de analizador cuando se solicite la página por primera vez. Si no desea utilizar la funcionalidad que ofrece el atributo VaryByParam, debe establecer su valor como None. Para obtener más información sobre el uso del atributo VaryByParam, vea Almacenar en caché múltiples versiones de una página.

Además, ASP.NET incluye un conjunto de las API que controlan mediante programación la caducidad y las directivas del almacenamiento de una página en la caché de resultados a través de la clase HttpCachePolicy. Esta clase, sus métodos y sus propiedades están disponibles a través de la propiedad HttpResponse.Cache. A su vez, el acceso a esta propiedad se obtiene desde el objeto Page mediante la propiedad Page.Response.Por ejemplo, si se incluye el siguiente código en el bloque de declaración de código de una página o en la clase de código subyacente, el método HttpCachePolicy.SetExpires establece una caducidad de 60 segundos para la página generada dinámicamente.

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
[Visual Basic]
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))

Una vez habilitado el almacenamiento en caché, la solicitud HTTP GET inicial deja el contenido dinámico de la página en la caché de resultados durante el tiempo especificado. La caché de resultados atenderá a las solicitudes GET, HEAD y POST que posteriormente se hagan de la página hasta que transcurra el tiempo especificado.

En los dispositivos que admiten el almacenamiento en la caché de resultados, esta opción se puede habilitar o deshabilitar de forma declarativa o mediante programación en la secuencia de solicitudes. En la directiva @ OutputCache de una página, se puede utilizar el atributo Location para especificar si el resultado de la página se almacena en la caché de servidores proxy, clientes de explorador, servidor Web de origen, o bien en todos estos dispositivos o en ninguno. Esto mismo se puede hacer mediante programación si se utiliza el método HttpCachePolicy.SetCacheability para especificar el valor de enumeración HttpCacheability adecuado para la página. Para obtener más información, vea Configurar la posibilidad de almacenar una página en caché.

Las respuestas generadas por solicitudes GET con parámetros en la cadena de consulta o por solicitudes de formulario POST con parámetros también pueden almacenarse en caché, pero es necesario habilitar explícitamente el almacenamiento en caché de los parámetros que se pasen con el atributo VaryByParam de la directiva @ OutputCache. Para obtener más información, vea Almacenar en caché múltiples versiones de una página.

Recuerde que las modificaciones que desee hacer mediante programación en la caché de resultados deben tener lugar en el bloque de declaración de código de un archivo .aspx o en la clase de código subyacente asociada a ese archivo.

Vea también

Configurar la caducidad del almacenamiento de páginas en caché | Configurar la posibilidad de almacenar una página en caché | Almacenar en caché múltiples versiones de una página | Características del almacenamiento en caché de ASP.NET | Directiva @ OutputCache