पेज को कैशिंग से अक्षम ब्राउज़रों के लिए ASP.NET कोड की आवश्यकता के संदर्भ में मैं निश्चित संदर्भ के बाद हूं। HTTP हेडर और मेटा टैग को प्रभावित करने के कई तरीके हैं और मुझे लगता है कि विभिन्न ब्राउज़रों को सही ढंग से व्यवहार करने के लिए विभिन्न सेटिंग्स की आवश्यकता होती है। कोड को संदर्भित करने के लिए टिप्पणी करना वास्तव में बहुत अच्छा होगा, यह इंगित करने के लिए कि सभी ब्राउज़रों के लिए कौन सा कार्य करता है और कौन से संस्करणों के लिए विशेष ब्राउज़र के लिए आवश्यक है।
इस मुद्दे के बारे में जानकारी की एक बड़ी मात्रा है लेकिन मुझे अभी तक एक अच्छा संदर्भ नहीं मिला है जो प्रत्येक विधि के लाभों का वर्णन करता है और क्या किसी विशेष तकनीक को उच्च स्तर के एपीआई द्वारा अधिगृहीत किया गया है।
मुझे ASP.NET 3.5 SP1 में विशेष रूप से दिलचस्पी है, लेकिन पहले के संस्करण के लिए भी उत्तर प्राप्त करना अच्छा होगा।
यह ब्लॉग प्रवेश फ़ायरफ़ॉक्स और IE कैशिंग के बीच दो महत्वपूर्ण अंतरों का वर्णन करता है कुछ HTTP प्रोटोकॉल व्यवहार अंतर।
निम्न नमूना कोड उस चीज़ को दिखाता है जिस तरह की मुझे दिलचस्पी है
public abstract class NoCacheBasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DisableClientCaching();
}
private void DisableClientCaching()
{
// Do any of these result in META tags e.g. <META HTTP-EQUIV="Expire" CONTENT="-1">
// HTTP Headers or both?
// Does this only work for IE?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Is this required for FireFox? Would be good to do this without magic strings.
// Won't it overwrite the previous setting
Response.Headers.Add("Cache-Control", "no-cache, no-store");
// Why is it necessary to explicitly call SetExpires. Presume it is still better than calling
// Response.Headers.Add( directly
Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-1));
}
}