Asp.net รองรับแคชสามประเภท
ฉันต้องการเขียนภาพรวมทางเทคนิคอย่างรวดเร็ว แต่อาจมากเกินไป วัตถุประสงค์ของภาพรวมทางเทคนิคคือการอธิบายประเด็นทางเทคนิคในวิธีที่เร็วและง่ายที่สุด ซึ่งเป็นวิธีที่มีประสิทธิภาพที่สุดในการเผยแพร่ความรู้ที่ฉันหวังไว้
1. แคชเพจ/การควบคุม
2. แคชระดับแอปพลิเคชัน
3 แคชไคลเอ็นต์ของเบราว์เซอร์
จากมุมมองของการใช้งาน แคชเพจ/การควบคุมและแคชระดับแอปพลิเคชันจะถูกจัดเก็บไว้ในหน่วยความจำเซิร์ฟเวอร์ เมื่อหน่วยความจำแน่น เนื้อหาเหล่านี้อาจถูกลบล่วงหน้าก่อนที่จะกลายเป็นไม่ถูกต้อง (ลักษณะของแคชกำหนดว่าเนื้อหาเหล่านี้สามารถลบได้ด้วยความมั่นใจ) แคชของไคลเอนต์เบราว์เซอร์ถูกเก็บไว้ในแคชของเบราว์เซอร์ไคลเอนต์ ตัวอย่างเช่น โฟลเดอร์ชั่วคราวของ IE ทำหน้าที่เป็นแคช ทุกครั้งที่ผู้ใช้ร้องขอเพจ เบราว์เซอร์จะค้นหาแคชก่อนเพื่อดูว่ามีเนื้อหาแคชที่ตรงตามข้อกำหนดและยังไม่หมดอายุหรือไม่ ในกรณีนี้ เบราว์เซอร์จะอ่านแคชโดยตรงจากแคชและข้ามการส่งผ่านเครือข่าย
ข้อมูลต่อไปนี้สาธิตวิธีการเขียนเฉพาะใน Asp.net:
1. แคชเพจ/การควบคุมสามารถประกาศได้ในไฟล์ aspx, ascx หรือสามารถประกาศในโค้ดด้านหลังก็ได้
<%@ OutputCache Duration = "#ofseconds"
Location = "ใด ๆ | ลูกค้า | ดาวน์สตรีม | เซิร์ฟเวอร์ | ไม่มี |
ServerAndClient "
Shared = "True | False"
VaryByControl = "controlname"
VaryByCustom = "เบราว์เซอร์ | customstring"
VaryByHeader = "ส่วนหัว"
VaryByParam ="parametername"
CacheProfile="ชื่อโปรไฟล์แคช | ''"
NoStore="true | false"
SqlDependency="คู่ฐานข้อมูล/ชื่อตาราง | CommandNotification"
%>
พารามิเตอร์หลักคือ:
ระยะเวลา: เวลาที่มีประสิทธิภาพของแคช หน่วยวินาที
ที่ใช้ร่วมกัน: มัน ใช้ได้กับการควบคุมเท่านั้น เมื่อสามารถใช้การควบคุมกับหลายเพจพร้อมกัน หลายเพจสามารถแชร์แคชนี้ได้โดยไม่ต้องให้แต่ละเพจเก็บแคชของตัวเองสำหรับการควบคุมนี้หรือไม่
VaryByControl: แคชเปลี่ยนแปลงด้วย ID ของตัวควบคุม
VaryByCustom: แคชเปลี่ยนแปลงด้วยตัวแปรที่ผู้ใช้กำหนดที่นี่และควรนำไปใช้ใน Global.ascx:
สตริงการแทนที่สาธารณะ GetVaryByCustomString (
บริบท HttpContext,
สตริงแบบกำหนด
เอง
)
คำสั่ง พารามิเตอร์ที่กำหนดเองคือตัวแปรที่ประกาศใน OutPutcache เนื้อหาแคชที่แตกต่างกันจะแสดงโดยการส่งคืนค่าสตริงที่แตกต่างกันสำหรับพารามิเตอร์ที่กำหนดเองที่แตกต่างกันในฟังก์ชันนี้
VaryByHeader, VaryByParam และ CacheProfile ยังตั้งค่าเวอร์ชันแคชที่แตกต่างกันอีกด้วย
NoStore หมายความว่าเนื้อหาของแคชไม่ได้รับอนุญาตให้เขียนลงในอุปกรณ์จัดเก็บข้อมูลอื่นที่ไม่ใช่หน่วยความจำ นี่เป็นข้อกำหนดสำหรับเนื้อหาที่มีความปลอดภัยค่อนข้างสูง
SqlDependency เกี่ยวข้องกับฐานข้อมูล
2. สามารถรับแคชระดับแอปพลิเคชัน
ได้ในโค้ดด้านหลังเท่านั้น และคุณลักษณะของแคชคือสามารถใช้ตรรกะแคชที่ต้องการได้
สามารถรับได้ผ่าน Page.Cache ชื่อคลาสคือ System.Web.Caching.Cache
3. แคชไคลเอนต์ของเบราว์เซอร์
สามารถรับได้ใน codebehind เท่านั้นและสามารถระบุผ่าน Response.Cache ซึ่งเป็นวัตถุ HttpCachePolicy
นอกจากนี้: คุณสามารถระบุ TimeSpan เป็นเวลาแคช โดยไม่ต้องแปลงเป็นวินาทีในแต่ละครั้ง
TimeSpan สาธารณะ (ขีดยาว);
TimeSpan สาธารณะ (int ชั่วโมง, int นาที, int วินาที);
TimeSpan สาธารณะ (int วัน, int นาที, int วินาที)
;
, เป็นมิลลิวินาที)
หากคุณต้องการให้แคชคงไว้หนึ่งชั่วโมง หนึ่งนาที และหนึ่งวินาที คุณสามารถใช้
TimeSpan(1,1,1) ใหม่
ได้โดยตรงแทนที่จะคำนวณครั้งแรก
1 ชั่วโมง 1 นาที และ 1 วินาที = 3600 +60+1=3661 วินาที จากนั้นโอน ป้อน 3661 เป็นระยะเวลาที่มีผล
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html