Como: Cache de saída de uma página com dependências de chave de cache
Às vezes convém remover uma página do cache de saída quando um item do cache é removido.Por exemplo, pode existir uma página que exibe um relatório de processos intensivos que é colocando no cache do aplicativo e utilizado por várias páginas.Quando um relatório é modificado ou removido do cache, você pode desejar que a saída da página também seja removida do cache porque o relatório não mais será válido.Para fazê-lo você pode fazer a saída cacheada da página dependente de outros itens do cache.
Observação: |
---|
Você pode remover explicitamente qualquer página do cache de saída chamando o método RemoveOutputCacheItem.Você pode fazer isso, de um controle servidor ASP.NET personalizado, ou de uma página, dependendo das necessidades do seu aplicativo a partir do arquivo Global.asax. |
Para tornar a saída de página em cache dependente de um item
Especifique as configurações para saída da página em cache declarativamente ou através de programação.Para obter mais informações, consulte Como: conjunto valores de expiração para ASP.NET página cache, Definindo a Cacheabilidade de uma Página e Armazenando Múltiplas Versões de uma Página.
No código da página, chame o método AddCacheItemDependency.Como parâmetro cacheKey, passe o nome do item em cache com o qual você deseja criar a dependência.
O seguinte exemplo de código mostra como definir uma dependência de um item nomeado ProcessIntensiveReport.Quando o item for alterado ou removido, a saída da página será removida do cache.
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
Observação: Você não pode chamar o método AddCacheItemDependency no controle de usuário do ASP.NET.No entanto, em qualquer controle de usuário que especifica a diretiva @ OutputCache, você pode criar um objeto CacheDependency que descreve as dependência chave do cache e designá-lo para a propriedade Dependency do objeto UserControl.
Consulte também
Tarefas
Como: conjunto por programação Cacheability da página