控制 ASP.NET MVC 操作中的快取
ASP.NET MVC 的快取機制顯著提高了效能。 然而,在某些情況下,停用特定操作的快取對於保證新鮮資料的檢索至關重要。本指南詳細介紹了使用自訂屬性防止在特定 ASP.NET MVC 操作中進行快取的方法。
建立 NoCache 屬性
為了建構禁用快取的自訂屬性,我們利用 [AttributeUsage]
和 [ActionFilterAttribute]
屬性。 下面是一個例子:
<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>
將 [NoCache]
套用至控制器或操作方法會停用該特定元素的快取。 或者,從基本控制器繼承並用 [NoCache]
裝飾它可以防止跨所有繼承的控制器進行快取。
jQuery 的快取控制
使用 jQuery 進行資料檢索時,在 cache: false
方法中明確設定 $.ajax()
可防止快取:
<code class="language-javascript">$.ajax({ cache: false, // ... other AJAX settings });</code>
強制瀏覽器刷新
實施反快取措施後,「硬刷新」(Ctrl F5)對於確保瀏覽器不依賴快取資料至關重要。如果瀏覽器保留快取版本,標準刷新 (F5) 可能無法總是檢索到最新資訊。
總結
在 jQuery 中使用 NoCacheAttribute
或設定 cache: false
可以有效防止快取目標 ASP.NET MVC 操作,從而確保瀏覽器接收目前資料。 掌握快取控制是避免陳舊資料影響使用者體驗和應用程式邏輯的關鍵。
以上是如何防止快取特定 ASP.NET MVC 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!