Almacenar en caché múltiples versiones de una página
Cuando se solicita una página ASP.NET, pueden generarse varias respuestas, cuyo número variará dependiendo de su complejidad. Por ejemplo, si diseña una página con un formulario HTML que permite a los usuarios buscar la dirección del distribuidor más cercano a su domicilio e incluye en ella cuadros de entrada para la ciudad y el código postal, la página de respuesta será distinta para cada usuario. Puede optar por almacenar en caché una versión del resultado de la página para cada ciudad, para cada código postal o para ambos.
ASP.NET permite almacenar en caché múltiples versiones de una misma página de respuesta. Puede modificar la caché de resultados por medio de los parámetros de la cadena de consulta GET o del formulario POST especificados en la solicitud, de los encabezados HTTP pasados con la solicitud o del número principal de versión del explorador que efectúe la solicitud. También puede definir una cadena personalizada en la página y especificar cómo debe afectar al almacenamiento en caché de la respuesta en el archivo Global.asax de la aplicación.
ASP.NET permite almacenar en caché múltiples versiones de una respuesta de página de forma declarativa, con los atributos de la directiva @ OutputCache, o mediante programación, con las propiedades y métodos de la clase HttpCachePolicy.
Específicamente, la directiva @OutputCache incluye tres atributos que permiten almacenar en caché varias versiones del resultado de una página:
El atributo requerido VaryByParam permite variar el resultado almacenado en la caché dependiendo de los parámetros de la cadena de consulta GET o del formulario POST.
El atributo VaryByHeader permite variar el resultado almacenado en la caché dependiendo del encabezado HTTP asociado a la solicitud.
El atributo VaryByCustom permite variar el resultado almacenado en la caché dependiendo del tipo de explorador o de una cadena personalizada que se haya definido.
Nota Aunque siempre debe incluirse el atributo VaryByParam en la directiva @ OutputCache, puede especificar su valor como None si no desea utilizar la funcionalidad que ofrece.
La clase HttpCachePolicy suministra dos propiedades y un método que ofrecen las mismas posibilidades que los atributos descritos anteriormente. Las propiedades de tipo Boolean VaryByParams y VaryByHeaders permiten especificar los nombres de parámetro y de encabezado, respectivamente, que determinan la respuesta desde la caché. El método SetVaryByCustom permite definir las cadenas personalizadas que determinarán la respuesta de la caché de resultados.
Para consultar procedimientos y explicaciones más detalladas de estas técnicas, vea Almacenar en caché versiones de una página basada en parámetros, Almacenar en caché versiones de una página basada en encabezados HTTP y Almacenar en caché versiones de una página basada en cadenas personalizadas.
Vea también
@ OutputCache | Almacenar en caché páginas de ASP.NET | HttpApplication.GetVaryByCustomString (Método) | HttpCacheVaryByHeaders | HttpCacheVaryByParams | VaryByParams | VaryByHeaders