首頁 > 後端開發 > C++ > 如何防止快取特定 ASP.NET MVC 操作?

如何防止快取特定 ASP.NET MVC 操作?

DDD
發布: 2025-01-14 15:07:13
原創
815 人瀏覽過

How Do I Prevent Caching for Specific ASP.NET MVC Actions?

控制 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板