यह सुनिश्चित करने के लिए कि JQuery आपके ajax तरीकों पर परिणामों को कैशिंग नहीं कर रहा है, निम्नलिखित डालें:
$.ajax({
cache: false
//rest of your ajax setup
});
या एमवीसी में कैशिंग को रोकने के लिए, हमने अपनी विशेषता बनाई, आप भी ऐसा कर सकते हैं। यहाँ हमारा कोड है:
[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]
public class ControllerBase : Controller, IControllerBase
आप इस विशेषता के साथ कुछ कार्यों को भी सजा सकते हैं यदि आपको पूरे नियंत्रक को सजाने के बजाय उन्हें गैर-उपलब्ध होने की आवश्यकता है।
यदि आपकी क्लास या क्रिया NoCache
तब नहीं हुई थी जब आपके ब्राउज़र में इसे प्रस्तुत किया गया था और आप यह जाँचना चाहते हैं कि यह काम कर रहा है, तो याद रखें कि परिवर्तनों को संकलित करने के बाद आपको अपने ब्राउज़र में "हार्ड रिफ्रेश" (Ctrl + F5) करने की आवश्यकता है। जब तक आप ऐसा नहीं करते हैं, तब तक आपका ब्राउज़र पुराने कैश्ड संस्करण को रखेगा, और इसे "सामान्य ताज़ा" (F5) के साथ ताज़ा नहीं करेगा।