Mengawal Caching dalam ASP.NET MVC Actions
Mekanisme caching ASP.NET MVC dengan ketara meningkatkan prestasi. Walau bagaimanapun, senario wujud di mana melumpuhkan caching untuk tindakan tertentu adalah penting untuk menjamin pengambilan data baharu. Panduan ini memperincikan kaedah untuk mengelakkan caching dalam tindakan ASP.NET MVC tertentu menggunakan atribut tersuai.
Mencipta Atribut NoCache
Untuk membina atribut tersuai yang melumpuhkan caching, kami memanfaatkan atribut [AttributeUsage]
dan [ActionFilterAttribute]
. Di bawah ialah contoh:
<code class="language-csharp">[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public sealed class NoCacheAttribute : ActionFilterAttribute { public override void OnResultExecuting(ResultExecutingContext filterContext) { filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false); filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); filterContext.HttpContext.Response.Cache.SetNoStore(); base.OnResultExecuting(filterContext); } }</code>
Memohon [NoCache]
pada pengawal atau kaedah tindakan melumpuhkan caching untuk elemen khusus itu. Sebagai alternatif, mewarisi daripada pengawal asas dan menghiasinya dengan [NoCache]
menghalang cache merentas semua pengawal yang mewarisi.
Kawalan Cache jQuery
Apabila menggunakan jQuery untuk mendapatkan semula data, tetapan cache: false
secara eksplisit dalam kaedah $.ajax()
menghalang caching:
<code class="language-javascript">$.ajax({ cache: false, // ... other AJAX settings });</code>
Menguatkuasakan Muat Semula Penyemak Imbas
Selepas melaksanakan langkah anti-cache, "muat semula keras" (Ctrl F5) adalah penting untuk memastikan penyemak imbas tidak bergantung pada data cache. Muat semula standard (F5) mungkin tidak selalu mendapatkan maklumat terkini jika penyemak imbas mengekalkan versi cache.
Ringkasan
Menggunakan NoCacheAttribute
atau tetapan cache: false
dalam jQuery dengan berkesan menghalang caching untuk tindakan ASP.NET MVC yang disasarkan, menjamin penyemak imbas menerima data semasa. Menguasai kawalan caching adalah kunci untuk mengelakkan data basi yang memberi kesan kepada pengalaman pengguna dan logik aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Mencegah Caching untuk Tindakan ASP.NET MVC Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!