La seule manière appropriée de désactiver la mise en cache du navigateur est d'utiliser les en-têtes HTTP de la webapp elle-même. L'en-tête HTTP 1.1 "Cache-Control" seul devrait suffire pour tout navigateur post-2000. Mais pour une protection supplémentaire, le serveur peut émettre les en-têtes HTTP 1.1 "Cache-Control" et HTTP 1.0 "Expires" ensemble .
Une façon hack'ish mais parfois vue de gérer l'invalidation du cache est une chaîne "cachebuster" dans les URL du serveur. Le cachebuster est souvent basé sur l'horodatage et est ajouté en tant que chaîne de requête à chaque lien HTML pour rendre l'URL unique et utilisée une seule fois. Quelque chose comme http://example.org/filename.html?cb=<timestamp+random_value>
. C'est moche, et ne fait rien de mieux que les en-têtes HTTP. Mais il pourrait être utilisé comme hack pour un public limité (fx sur un intranet), ou comme couche de protection supplémentaire avec des en-têtes HTTP appropriés.
AFAIK il n'existe aucun moyen de désactiver sélectivement la mise en cache pour un seul site uniquement à partir d'Internet Explorer. Une solution (sanglamment compliquée) pourrait être d'installer le cache Varnish comme cache intermédiaire sur votre réseau local, de configurer Internet Explorer pour utiliser Varnish comme proxy HTTP et d'utiliser le langage VCL sur Varnish pour réécrire les en-têtes HTTP pour ce site spécifique uniquement.
Honnêtement, je pense que votre fournisseur fait une erreur ici. Je suggère d'installer Fiddler2 pour IE ou Firebug pour Firefox et de regarder les en-têtes HTTP réels que la webapp envoie. Correlez cela avec le tutoriel de mise en cache de Mark Nottingham auquel j'ai déjà lié ci-dessus - je suppose que les en-têtes permettent la mise en cache, ou du moins n'interdisent pas expressément la mise en cache.
http://www.zann-marketing.com/developer/20051018/stop-browser-caching-using-meta-tags.html
Vous pouvez envisager d'utiliser des clés aléatoires dans la barre d'URL, cela empêchera également la mise en cache dans le navigateur.
la source