Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una página agregada a una caché de resultados se quitará de la caché cuando transcurra el tiempo especificado en la directiva de caducidad. En ocasiones será conveniente que una página, o algunas versiones de ella, se quiten de la caché de resultados antes de que hayan caducado. Por ejemplo, si la página muestra datos muy variables, como una cotización bursátil o la temperatura, la información mostrada será incorrecta si los datos cambian antes de que la página caduque.
Para resolver este problema, ASP.NET suministra los métodos HttpResponse.AddCacheItemDependency y HttpResponse.AddCacheItemDependencies, que permiten almacenar resultados de páginas en caché en función de un elemento del objeto Cache (asociado a la aplicación a la que pertenece la página).
Nota Es posible quitar explícitamente una página de la caché de resultados llamando al método HttpResponse.RemoveOutputCacheItem. En función de las necesidades de la aplicación, esto se puede hacer en el archivo global.asax, en un control de servidor ASP.NET personalizado que haya creado o en una página.
El método AddCacheItemDependency permite crear una relación entre la página y un elemento individual de Cache, mientras que el método AddCacheItemDependencies permite crear una relación entre la página y una matriz de elementos de Cache. Cuando alguno de los elementos de los que depende la página cambie o se quite del objeto Cache de la aplicación, la página quedará invalidada y se quitará de la caché de resultados.
Nota Estos métodos no se pueden utilizar en un control de usuario de formularios Web Forms.
Para hacer que el resultado de la página en caché dependa de un elemento de Cache
Especifique las opciones para almacenar el resultado de la página en caché, ya sea de forma declarativa o mediante programación. Para obtener más información, vea Configurar la caducidad del almacenamiento de páginas en caché, Configurar la posibilidad de almacenar una página en caché y Almacenar en caché múltiples versiones de una página.
En el bloque de declaración de código o en el archivo de código subyacente de la página, agregue un elemento al objeto Cache de la aplicación Web mediante la propiedad Cache.Item, el método Cache.Add o el método Cache.Insert.
En el bloque de declaración de código o en el archivo de código subyacente de la página, utilice la sintaxis del objeto Response para llamar al método AddCacheItemDependency o AddCacheItemDependencies y especifique los elementos almacenados en la caché de los que depende la página.
PRECAUCIÓN Para utilizar estos métodos, el argumento pasado debe ser la clave de caché especificada para el elemento en la propiedad Cache.Item, en el método Cache.Add o en el método Cache.Insert.
En el ejemplo siguiente se supone que una aplicación contiene un componente de temperatura. En el componente se utiliza el método Cache.Insert para almacenar una temperatura en el objeto Cache de la aplicación.
Cache.Insert("Temperature.CurrentTemperature", currentTemperature);
[Visual Basic]
Cache.Insert("Temperature.CurrentTemperature", currentTemperature)
El siguiente código de página, incluido en un bloque de declaración de código o en un archivo de código subyacente, obtiene la temperatura actual almacenada en Cache, la convierte en una cadena y la muestra. A continuación, hace que la versión de la caché de resultados dependa de la clave Temperature.CurrentTemperature. A partir de este momento, cuando se actualice la temperatura, la antigua versión de la página se quitará de la caché de resultados. La página se volverá a almacenar en la caché de resultados cuando se solicite de nuevo.
int temperature = (int) Cache.Get("Temperature.CurrentTemperature");
LabelTemperature.Text = temperature.ToString();
Response.AddCacheItemDependency("Temperature.CurrentTemperature");
[Visual Basic]
Dim temperature as Integer
temperature = Cache.Get("Temperature.CurrentTemperature")
LabelTemperature.Text = temperature.ToString()
Response.AddCacheItemDependency("Temperature.CurrentTemperature")
Vea también
Almacenar en caché páginas de ASP.NET | HttpCacheability (Enumeración) | HttpCachePolicy (Clase) | HttpResponse (Clase) | @ OutputCache (Directiva)