Je suis après une référence définitive à quel code ASP.NET est requis pour désactiver les navigateurs de la mise en cache de la page. Il y a plusieurs façons d'affecter les en-têtes HTTP et les métabalises et j'ai l'impression que différents paramètres sont nécessaires pour que les différents navigateurs se comportent correctement. Ce serait vraiment génial d'avoir un bit de code de référence commenté qui indique ce qui fonctionne pour tous les navigateurs et qui est requis pour un navigateur particulier, y compris les versions.Désactiver la mise en cache du navigateur pour tous les navigateurs d'ASP.NET
Il y a énormément d'informations sur ce problème, mais je n'ai pas encore trouvé une bonne référence qui décrive les avantages de chaque méthode et si une technique particulière a été remplacée par une API de plus haut niveau.
Je suis particulièrement intéressé par ASP.NET 3.5 SP1 mais il serait bon d'obtenir également des réponses pour les versions antérieures.
Cette entrée de blog Two Important Differences between Firefox and IE Caching décrit certaines différences de comportement du protocole HTTP.
Le code exemple suivant illustre le genre de chose que je suis intéressé par
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));
}
}
Je voudrais essayer de répondre si je ne savais pas à quel point votre tâche est horriblement impossible. Contrôler le cache du client, c'est comme essayer d'utiliser des baguettes de 10 pieds de long pour réorganiser les meubles. –
Beaucoup de réponses qui couvrent juste une partie du problème seraient encore très précieuses. S'il vous plaît jeter votre 2 cents. –