السيطرة على التخزين المؤقت في ASP.NET MVC Actions
آلية التخزين المؤقت لـ ASP.NET MVC تعزز الأداء بشكل كبير. ومع ذلك ، توجد السيناريوهات حيث يعد تعطيل التخزين المؤقت لأفعال معينة أمرًا حيويًا لضمان استرجاع البيانات الجديدة. هذا الدليل تفاصيل طرق لمنع التخزين المؤقت في إجراءات ASP.NET MVC محددة باستخدام سمات مخصصة.
إنشاء سمة nocache
لبناء سمة مخصصة تعطل التخزين المؤقت ، نحن نستفيد من [السمة]
و [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 لاسترجاع البيانات ، فإن الإعداد الصريح ذاكرة التخزين المؤقت: false
ضمن طريقة $. ajax ()
يمنع التخزين المؤقت:
$.ajax({
cache: false,
// ... other AJAX settings
});
تنفيذ تحديث المتصفح
بعد تنفيذ تدابير مكافحة التآكل ، يعد "التحديث الصلب" (Ctrl F5) أمرًا بالغ الأهمية لضمان عدم الاعتماد على المتصفح على البيانات المخبأة. قد لا يسترجع تحديث قياسي (F5) دائمًا أحدث المعلومات إذا كان المتصفح يحتفظ بالنسخة المخزنة مؤقتًا.
ملخص
استخدام nocacheAttribute
أو إعداد Cache: false في jQuery يمنع التخزين المؤقت بشكل فعال لإجراءات ASP.NET MVC المستهدفة ، وضمان استلام المتصفح البيانات الحالية. إتقان التحكم في التخزين المؤقت هو مفتاح تجنب البيانات التي تؤثر على تجربة المستخدم ومنطق التطبيق.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3