Cómo: Almacenar en memoria caché el resultado de las páginas con dependencias de clave de caché
Actualización: noviembre 2007
A veces, puede que desee quitar una página de la caché de resultados cuando se quita otro elemento en la caché. Por ejemplo, podría tener una página que muestra un informe de proceso intensivo que se coloca en la caché de la aplicación y lo utilizan varias páginas. Cuando se cambia el informe o se quita de la caché, el resultado de la página de la caché también se quita porque el informe ya no es válido. Para ello, puede hacer que el resultado de la página almacenada en caché dependa de los elementos almacenados en caché.
Nota: |
---|
Puede quitar explícitamente cualquier página de la caché de resultados llamando al método RemoveOutputCacheItem. En función de las necesidades de la aplicación, esto se puede hacer en el archivo Global.asax file, en un control de servidor ASP.NET personalizado que haya creado o en una página. |
Para hacer que el resultado de la página en caché dependa de otro elemento de la caché
En una página, especifique mediante declaración o mediante programación la configuración de la caché. Para obtener más información, vea Cómo: Establecer los valores de caducidad del almacenamiento en caché de páginas ASP.NET, Establecer el almacenamiento en caché de una página y Almacenar en memoria caché varias versiones de una página.
En el código de la página, llame al método AddCacheItemDependency. Como el parámetro cacheKey, pase el nombre del elemento de caché en el que crear una dependencia.
El ejemplo de código siguiente muestra cómo establecer una dependencia en el elemento denominado ProcessIntensiveReport. Cuando se modifica este elemento o se quita, el resultado de la página se quitará de la caché.
protected void Page_Load(object sender, EventArgs e) { Response.AddCacheItemDependency("ProcessIntensiveReport"); // Set additional properties to enable caching. Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.AddCacheItemDependency("ProcessIntensiveReport") ' Set additional properties to enable caching. Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True) End Sub
Nota: No se puede llamar al método AddCacheItemDependency en un control de usuario de ASP.NET. Sin embargo, cualquier control de usuario que especifica la directiva @ OutputCache puede crear un objeto CacheDependency que describe la dependencia de clave de caché y asignarlo a la propiedad Dependency del objeto UserControl.
Vea también
Tareas
Cómo: Establecer el almacenamiento en caché de una página mediante programación