เราเพิ่มปุ่มสามปุ่มบนเพจและสร้างวิธีการจัดการเหตุการณ์สำหรับการดับเบิลคลิกที่ปุ่ม ปุ่มทั้งสามปุ่มเพิ่มแคช 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)
-
ชุดข้อมูล ds = GetData();
Cache.Insert("ข้อมูล", ds);
-
ป้องกันเป็นโมฆะ btn_InsertAbsoluteExpirationCache_Click (ผู้ส่งวัตถุ EventArgs e)
-
ชุดข้อมูล ds = GetData();
Cache.Insert("ข้อมูล", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
-
ป้องกันเป็นโมฆะ btn_InsertSlidingExpirationCache_Click (ผู้ส่งวัตถุ EventArgs e)
-
ชุดข้อมูล ds = GetData();
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 แคชจะจัดการการทำงานพร้อมกันด้วยตัวมันเอง