ASP.NET MVCアクションでキャッシュを制御する
ASP.NET MVCのキャッシュメカニズムは、パフォーマンスを大幅に向上させます。 ただし、特定のアクションのキャッシュを無効にすることが、新鮮なデータの取得を保証するために不可欠なシナリオが存在します。このガイドは、カスタム属性を使用して特定のASP.NET MVCアクションでキャッシュを防ぐ方法を詳述します。
nocache属性を作成する
キャッシングを無効にするカスタム属性を構築するには、 [astributeUsage]
[actionfilterattribute]
属性を活用します。 以下は例です:
[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);
}
}
[nocache]
をコントローラーまたはアクションメソッドに適用すると、その特定の要素のキャッシュを無効にします。 あるいは、ベースコントローラーから継承して [nocache]
で飾ることで、すべての継承コントローラーのキャッシュを防ぎます。
jQueryのキャッシュコントロール
データ取得にjQueryを使用する場合、 cache:false
内で明示的に設定します。
$。ajax({
キャッシュ:FALSE、
// ...その他のAjax設定
});
$.ajax({
cache: false,
// ... other AJAX settings
});
アンチキャッシング測定を実装した後、ブラウザがキャッシュされたデータに依存しないようにするためには、「ハードリフレッシュ」(CTRL F5)が重要です。標準の更新(F5)は、ブラウザがキャッシュバージョンを保持している場合、常に最新情報を取得するとは限らない場合があります。
まとめ
を使用して nocacheTtribute
または cache:false の設定を行うと、ターゲットを絞ったASP.NET MVCアクションのキャッシュを効果的に防ぎ、ブラウザが現在のデータを受信することを保証します。 キャッシング制御のマスタリングは、ユーザーエクスペリエンスとアプリケーションロジックに影響を与える古いデータを回避するための鍵です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3