Мы добавляем на страницу три кнопки и создаем методы обработки событий для двойного щелчка по кнопкам. Эти три кнопки добавляют кеш ASP.NET, используя разные стратегии срока действия.
<asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="Вставить бессрочный кэш"
OnClick="btn_InsertNoExpirationCache_Click" />
<asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="Вставить абсолютное время
Срок действия кэша" OnClick="btn_InsertAbsoluteExpirationCache_Click" />
<asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="Вставить время изменения
Срок действия кэша" OnClick="btn_InsertSlidingExpirationCache_Click" />
Методы обработки событий Click для трех кнопок следующие:
protected void btn_InsertNoExpirationCache_Click (отправитель объекта, EventArgs e)
{
Набор Данных ds = ПолучитьДанные();
Cache.Insert("Данные", ds);
}
protected void btn_InsertAbsoluteExpirationCache_Click (отправитель объекта, EventArgs e)
{
Набор Данных ds = ПолучитьДанные();
Cache.Insert("Данные", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
}
protected void btn_InsertSlidingExpirationCache_Click (отправитель объекта, EventArgs e)
{
Набор Данных ds = ПолучитьДанные();
Cache.Insert("Данные", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));
}
Давайте проанализируем эти три стратегии истечения срока действия кэша ASP.NET.
◆Без срока действия. Просто назначьте кэшированные ключ и значение напрямую.
◆Абсолютное время истечения. DateTime.Now.AddSeconds(10) означает, что срок действия кэша истечет через 10 секунд, а TimeSpan.Zero означает, что стратегия плавного истечения срока действия не используется.
◆Истечение времени смены (плавное истечение). DateTime.MaxValue означает, что политика истечения абсолютного времени не используется, а TimeSpan.FromSeconds(10) означает, что срок действия кэша истечет без доступа в течение 10 секунд подряд.
Здесь мы использовали метод Insert() для добавления кеша. Фактически, в Cache также есть метод Add(), который также может добавлять элементы в кеш. Разница в том, что метод Add() может добавлять только элементы, которых нет в кеше. Если вы добавите элемент, который уже находится в кеше, произойдет сбой (но исключение не будет выдано), в то время как метод Insert(). может перезаписать исходный элемент.
Примечание. В отличие от приложения, нет необходимости использовать операции блокировки, когда вставка в кэш ASP.NET сама обрабатывает параллелизм.