Adicionamos três botões na página e criamos métodos de manipulação de eventos para clicar duas vezes nos botões. Os três botões adicionam cache ASP.NET usando diferentes estratégias de expiração.
<asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="Inserir cache que nunca expira"
OnClick="btn_InsertNoExpirationCache_Click" />
<asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="Inserir tempo absoluto
Cache de expiração" OnClick="btn_InsertAbsoluteExpirationCache_Click" />
<asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="Inserir horário de alteração
Cache de expiração" OnClick="btn_InsertSlidingExpirationCache_Click" />
Os métodos de manipulação de eventos Click dos três botões são os seguintes:
void protegido btn_InsertNoExpirationCache_Click (objeto remetente, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("Dados",ds);
}
void protegido btn_InsertAbsoluteExpirationCache_Click (objeto remetente, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("Dados", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
}
void protegido btn_InsertSlidingExpirationCache_Click (objeto remetente, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("Dados", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));
}
Vamos analisar essas três estratégias de expiração de cache do ASP.NET.
◆Nunca expira. Basta atribuir a chave e o valor armazenados em cache diretamente.
◆Tempo de expiração absoluto. DateTime.Now.AddSeconds(10) significa que o cache expirará após 10 segundos e TimeSpan.Zero significa que a estratégia de expiração suave não é usada.
◆Expiração do tempo de mudança (expiração suave). DateTime.MaxValue significa que a política de expiração de tempo absoluto não é usada e TimeSpan.FromSeconds(10) significa que o cache expirará sem acesso por 10 segundos consecutivos.
Aqui, usamos o método Insert() para adicionar cache. Na verdade, o Cache também possui um método Add() que também pode adicionar itens ao cache. A diferença é que o método Add() só pode adicionar itens que não estão no cache. Se você adicionar um item que já está no cache, ele falhará (mas nenhuma exceção será lançada), enquanto o método Insert(). pode substituir o item original.
Nota: Ao contrário do Aplicativo, não há necessidade de usar operações de bloqueio quando a inserção no cache do ASP.NET tratará a simultaneidade por si só.