ฉันได้รับการอ้างอิงที่ชัดเจนถึงรหัส ASP.NET ที่จำเป็นในการปิดใช้งานเบราว์เซอร์จากการแคชหน้า มีหลายวิธีในการส่งผลกระทบต่อส่วนหัว HTTP และเมตาแท็กและฉันได้รับการแสดงผลที่แตกต่างกันต้องตั้งค่าเพื่อให้เบราว์เซอร์ต่างๆทำงานได้อย่างถูกต้อง จะเป็นการดีมากที่จะได้รับโค้ดอ้างอิงที่แสดงความคิดเห็นเพื่อระบุว่าใช้งานได้กับเบราว์เซอร์ทั้งหมดและจำเป็นสำหรับเบราว์เซอร์ใดโดยเฉพาะรวมถึงเวอร์ชัน
มีข้อมูลจำนวนมากเกี่ยวกับปัญหานี้อยู่ที่นั่น แต่ฉันยังไม่พบข้อมูลอ้างอิงที่ดีที่อธิบายถึงประโยชน์ของแต่ละวิธีและว่าเทคนิคเฉพาะถูกแทนที่ด้วย API ระดับที่สูงกว่าหรือไม่
ฉันสนใจ ASP.NET 3.5 SP1 เป็นพิเศษ แต่มันก็เป็นการดีที่จะได้รับคำตอบสำหรับเวอร์ชันก่อนหน้านี้เช่นกัน
รายการบล็อกนี้ความแตกต่างที่สำคัญสองประการระหว่าง Firefox และ IE Cachingอธิบายถึงความแตกต่างของพฤติกรรมโปรโตคอล 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));
}
}