Saya mencari referensi pasti tentang kode ASP.NET apa yang diperlukan untuk menonaktifkan browser dari cache halaman. Ada banyak cara untuk mempengaruhi header HTTP dan meta tag dan saya mendapat kesan bahwa pengaturan yang berbeda diperlukan untuk membuat browser yang berbeda berperilaku dengan benar. Akan sangat bagus untuk mendapatkan sedikit referensi kode yang dikomentari untuk menunjukkan mana yang berfungsi untuk semua browser dan mana yang diperlukan untuk browser tertentu, termasuk versi.
Ada banyak sekali informasi tentang masalah ini di sana, tetapi saya belum menemukan referensi bagus yang menjelaskan manfaat dari setiap metode dan apakah teknik tertentu telah digantikan oleh API tingkat yang lebih tinggi.
Saya sangat tertarik dengan ASP.NET 3.5 SP1 tetapi akan lebih baik untuk mendapatkan jawaban untuk versi sebelumnya juga.
Entri blog ini Dua Perbedaan Penting antara Firefox dan Caching IE menjelaskan beberapa perbedaan perilaku protokol HTTP.
Kode contoh berikut menggambarkan jenis hal yang saya minati
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));
}
}