web-dev-qa-db-fra.com

Comment faire en sorte qu'un navigateur télécharge une nouvelle copie d'une page Web lorsqu'il pense que sa copie en cache est toujours valide?

Parfois, lorsque j'apporte de petites modifications à un site Web, je remarque que certains navigateurs s'obstinent beaucoup à redire le téléchargement de la page. F5 et CTRL-R sont sans valeur et le seul moyen de résoudre ce problème consiste à parcourir les options et à lui indiquer manuellement d'effacer le cache. J'ai déjà utilisé PHP pour envoyer un en-tête de vidage de cache, mais existe-t-il un moyen plus simple ou meilleur?

5
dmsnell

Cela dépend de ce qui est mis en cache. S'il s'agit de la page principale, le seul moyen d'empêcher la mise en cache consiste à utiliser l'en-tête HTTP sans cache.

Cependant, gardez à l'esprit que les fichiers JS et CSS sont également généralement mis en cache. Une astuce pour les invalider quand ils sont utilisés par de nombreux sites Web - y compris celui-ci - consiste à ajouter un numéro factice après le '?'. Tout après le '?' est ignoré par le serveur Web, mais puisque l'URL change, le navigateur le télécharge toujours.

Un exemple tiré de cette page: http://sstatic.net/webmasters/all.css?v=ac775b7bd951. Le "ac775b7bd951" provient de Mercurial, le système de gestion de versions utilisé. Vous pouvez faire quelque chose de similaire avec svn (exemple: all.css? Revision = 123).

6
Thomas Bonini

F5 est actualisé en utilisant le cache. Ctrl-F5 ignorera le cache. Je n'en suis pas certain, mais il semblerait que Ctrl-R soit équivalent à F5 plutôt qu'à Ctrl-F5?

2
Rebecca Chernoff