نضيف ثلاثة أزرار على الصفحة وننشئ طرقًا للتعامل مع الأحداث للنقر المزدوج على الأزرار. تضيف الأزرار الثلاثة ذاكرة تخزين مؤقت لـ 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" />
طرق التعامل مع حدث النقر للأزرار الثلاثة هي كما يلي:
الفراغ المحمي btn_InsertNoExpirationCache_Click(مرسل الكائن، EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("البيانات"، ds);
}
الفراغ المحمي btn_InsertAbsoluteExpirationCache_Click(object sender, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("Data", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
}
الفراغ المحمي btn_InsertSlidingExpirationCache_Click(مرسل الكائن، EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("Data", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));
}
دعونا نحلل استراتيجيات انتهاء صلاحية ذاكرة التخزين المؤقت الثلاثة لـ ASP.NET.
◆لا تنتهي صلاحيته أبدًا. ما عليك سوى تعيين المفتاح والقيمة المخزنة مؤقتًا مباشرةً.
◆انتهاء الوقت المطلق. يعني DateTime.Now.AddSeconds(10) أن ذاكرة التخزين المؤقت ستنتهي صلاحيتها بعد 10 ثوانٍ، ويعني TimeSpan.Zero أنه لم يتم استخدام استراتيجية انتهاء الصلاحية السلسة.
◆انتهاء تغيير الوقت (انتهاء سلس). يعني DateTime.MaxValue أن سياسة انتهاء الصلاحية للوقت المطلق غير مستخدمة، ويعني TimeSpan.FromSeconds(10) أن ذاكرة التخزين المؤقت ستنتهي دون الوصول إليها لمدة 10 ثوانٍ متتالية.
هنا، استخدمنا طريقة Insert() لإضافة ذاكرة تخزين مؤقت. في الواقع، تحتوي ذاكرة التخزين المؤقت أيضًا على طريقة Add() التي يمكنها أيضًا إضافة عناصر إلى ذاكرة التخزين المؤقت. الفرق هو أن طريقة Add() يمكنها فقط إضافة العناصر غير الموجودة في ذاكرة التخزين المؤقت. إذا قمت بإضافة عنصر موجود بالفعل في ذاكرة التخزين المؤقت، فسوف تفشل (ولكن لن يتم طرح أي استثناء)، في حين أن طريقة Insert() يمكن الكتابة فوق العنصر الأصلي.
ملاحظة: على عكس التطبيق، ليست هناك حاجة لاستخدام عمليات القفل عندما يقوم الإدخال في ذاكرة التخزين المؤقت لـ ASP.NET بمعالجة التزامن بنفسه.