J'ai lu que lorsque vous n'avez pas accès aux en-têtes du serveur Web, vous pouvez désactiver le cache en utilisant:
<meta http-equiv="Cache-Control" content="no-store" />
Mais j'ai aussi lu que cela ne fonctionnait pas dans certaines versions d'IE. Existe-t-il un ensemble de balises <meta> qui désactiverait le cache dans tous les navigateurs?
Voir la réponse ici: Comment contrôler la mise en cache des pages Web sur tous les navigateurs?
La liste n'est que des exemples de techniques différentes, elle n'est pas destinée à une insertion directe. Si copié, le second écraserait le premier et le quatrième écraserait le troisième à cause des déclarations http-equiv ET échouerait avec le validateur W3C. Tout au plus pourrait-on avoir une déclaration de chaque type http-equiv; pragma, cache-control et expire. Ceux-ci sont complètement obsolètes lors de l'utilisation de navigateurs modernes et à jour. Après IE9 quand même. Chrome et Firefox, en particulier, ne fonctionnent pas avec ceux-ci comme prévu, voire jamais.
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
Les en-têtes de cache ne sont pas fiables dans les méta-éléments; D'une part, tout proxy Web entre le site et l'utilisateur l'ignorera complètement. Vous devez toujours utiliser un véritable en-tête HTTP pour les en-têtes tels que Cache-Control et Pragma.
Ceci est un lien vers une grande étude de cas sur l'incompréhension de l'industrie du contrôle des caches.
http://securityevaluators.com/knowledge/case_studies/caching/
En résumé, selon cet article, seul Cache-Control: no-store
est reconnu par Chrome, Firefox et IE. IE reconnaît les autres contrôles, mais pas Chrome et Firefox.
Cela ne fonctionne pas dans IE5, mais ce n'est pas un gros problème.
Cependant, les en-têtes de cache ne sont pas fiables dans les méta-éléments; D'une part, tout proxy Web entre le site et l'utilisateur l'ignorera complètement. Vous devez toujours utiliser un véritable en-tête HTTP pour les en-têtes tels que Cache-Control et Pragma.
J'ai remarqué des problèmes de mise en cache lors d'appels de service lors de la répétition du même appel de service (longue interrogation). L'ajout de métadonnées n'a pas aidé. Une solution consiste à passer un timestamp
pour s'assurer que ie
pense qu'il s'agit d'une autre demande de service http
. Cela a fonctionné pour moi, donc ajouter un fragment de code de script côté serveur pour mettre à jour automatiquement cette balise ne ferait pas de mal:
<meta http-equiv="expires" content="timestamp">
pragma est votre meilleur pari:
<meta http-equiv="Pragma" content="no-cache">