ตัวอย่างเช่น เว็บไซต์มีการควบคุมผู้ใช้ Header.ascx แต่ละเพจเรียกการควบคุมนี้เป็น "ส่วนหัวของหน้า" คุณสามารถแคชการควบคุมผู้ใช้นี้ได้โดยตรงเพื่อส่งประสิทธิภาพ อย่างไรก็ตาม ตอนนี้การควบคุมผู้ใช้ Header.ascx นี้จำเป็นต้องแสดงการเข้าสู่ระบบ ชื่อผู้ใช้ ชื่อเข้าสู่ระบบ ดังนั้นคุณไม่สามารถใช้วิธีการแคชต่อไปนี้ได้โดยตรง:
<% @ OutputCache Duration = " 86400 " VaryByParam = " None " %>
ในขณะนี้ คุณสามารถใช้วิธีการ "แคชเพจตามสตริงที่กำหนดเอง" ได้ดังต่อไปนี้:
<%@ OutputCache Duration="86400" VaryByParam="None" VaryByCustom="HeaderPageKey" %>
จากนั้นแทนที่วิธี GetVaryByCustomString ใน
สตริงการแทนที่สาธารณะคลาสสากล GetVaryByCustomString (บริบท HttpContext, สตริงที่กำหนดเอง)
-
ถ้า(กำหนดเอง=="HeaderPageKey")
-
//การควบคุมแคช Header.ascx
ถ้า (context.Request.IsAuthenticated)
-
กลับบริบท User.Identity.Name;
-
อื่น
-
กลับ "NoAuthenticated_User";
-
-
กลับฐาน GetVaryByCustomString (บริบท กำหนดเอง);
-
หากผู้ใช้ไม่ได้เข้าสู่ระบบ เวอร์ชันหนึ่งจะถูกแคชไว้ หากผู้ใช้เข้าสู่ระบบแล้ว อีกเวอร์ชันหนึ่งจะถูกแคชตามชื่อเข้าสู่ระบบ ฮ่าฮ่า เวอร์ชันหนึ่งจะถูกแคชสำหรับผู้ใช้แต่ละคน ซึ่งไม่ดีเลย สารละลาย.
สำหรับเทคโนโลยีแคชข้างต้น โปรดดูที่ http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconcachingversionsofpagebasedonparameters.asp
นอกจากนี้ ยังใช้วิธีการแคชนี้ยังใช้ ใน MSPetShop3.0 เวอร์ชันที่แตกต่างกันจะถูกแคชไว้ตาม Request.Querystring และไม่ว่าคุณจะเข้าสู่ระบบหรือไม่ อย่างไรก็ตาม แคชนี้ดูเหมือนจะไม่ได้เปิดใช้งานตามค่าเริ่มต้น
ที่มา: kaka.net