Je suis après un et définitive à ce ASP.NET code est nécessaire pour handicapés navigateurs de mise en cache de la page. Il existe de nombreuses façons d'affecter les en-têtes HTTP et les balises meta et j'ai l'impression de différents paramètres sont nécessaires pour obtenir les différents navigateurs à se comporter correctement. Il serait vraiment bien pour obtenir une référence bits de code commenté pour indiquer ce qui fonctionne pour tous les navigateurs, et qui est nécessaire pour le navigateur, y compris les versions.
Il y a une énorme quantité d'informations sur cette question là, mais je n'ai pas encore trouver une bonne référence qui décrit les avantages de chaque méthode et de savoir si une technique particulière a été remplacé par un plus haut niveau de l'API.
Je suis particulièrement intéressé par la ASP.NET 3.5 SP1, mais il serait bon d'obtenir des réponses pour les versions antérieures.
Cette entrée de blog Deux Différences Importantes entre Firefox et IE Cache décrit certaines protocole HTTP différences de comportement.
L'exemple de code suivant illustre le genre de chose que je suis intéressé à
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));
}
}