ASP.NET MVC Extensible Donut Caching นำการแคชโดนัทไปที่ ASP.NET MVC 3 และหลังจากนั้น รหัสช่วยให้คุณสามารถแคชหน้าทั้งหมดของคุณนอกเหนือจาก HTML.Actions หนึ่งรายการขึ้นไปหนึ่งรายการซึ่งสามารถดำเนินการได้ทุกคำขอ เหมาะสำหรับเนื้อหาเฉพาะของผู้ใช้
วิธีที่ดีที่สุดในการเพิ่มการแคชโดนัทในโครงการ MVC ของคุณคือการใช้แพ็คเกจ NuGet จากภายใน Visual Studio เลือก เครื่องมือ | Library Package Manager จากนั้นเลือก Package Manager Console หรือจัดการแพ็คเกจ NUGET ผ่านคอนโซลเพียงแค่ พิมพ์ MVCDONUTCACHING และ HIT RETURN จาก GUI เพียงค้นหา MVCDONUTCACHING แล้วคลิกปุ่มติดตั้ง
แพ็คเกจเพิ่มการโอเวอร์โหลดหลายครั้งให้กับตัวช่วย HTML HTML ในตัว พารามิเตอร์พิเศษในการโอเวอร์โหลดแต่ละครั้งมีชื่อว่า ExcludeFromparentCache กำหนดให้เป็นจริงสำหรับการกระทำใด ๆ ที่ไม่ควรแคชหรือควรมีระยะเวลาแคชที่แตกต่างจากส่วนที่เหลือของหน้า
@Html . Action ( "Login" , "Account" , true )แพ็คเกจนี้ยังรวมถึง donutoutputCacheattribute ที่จะใช้แทน outputCacheattribute ในตัว โดยทั่วไปแล้วแอตทริบิวต์นี้จะถูกวางไว้ในการกระทำของคอนโทรลเลอร์ทุกครั้งที่ต้องการแคช
คุณสามารถระบุระยะเวลาคงที่:
[ DonutOutputCache ( Duration = "300" ) ]
public ActionResult Index ( )
{
return View ( ) ;
}หรือใช้โปรไฟล์แคช:
[ DonutOutputCache ( CacheProfile = "FiveMins" ) ]
public ActionResult Index ( )
{
return View ( ) ;
}หากคุณใช้โปรไฟล์แคชให้แน่ใจว่าได้กำหนดค่าโปรไฟล์ใน web.config เพิ่มสิ่งต่อไปนี้ภายในองค์ประกอบ System.web:
< caching >
< outputCacheSettings >
< outputCacheProfiles >
< add name = " FiveMins " duration = " 300 " varyByParam = " * " />
</ outputCacheProfiles >
</ outputCacheSettings >
</ caching >นอกจากนี้คุณยังสามารถกำหนดค่าแคชเอาต์พุตเพื่อใช้ผู้ให้บริการที่กำหนดเอง:
< caching >
< outputCache defaultProvider = " DistributedCacheProvider " >
< providers >
< add name = " DistributedCacheProvider " type = " DevTrends.Example.DistributedCacheProvider " />
</ providers >
</ outputCache >
</ caching >โปรดทราบว่าผู้ให้บริการที่กำหนดเองไม่ได้รวมอยู่ในโครงการนี้ แต่คุณสามารถเขียนได้อย่างง่ายดายอย่างง่ายดายโดย subclassing system.web.caching.utputputcacheprovider มีการใช้งานจำนวนมากบนเว็บ
คู่มือที่ครอบคลุมเกี่ยวกับการแคชโดนัทที่ขยายได้ MVC มีวางจำหน่ายแล้วในบล็อก Devtrends