web-dev-qa-db-fra.com

Empêcher la mise en cache de la page HTML

J'ai une page HTML. Le problème est que je ne veux pas que les utilisateurs actualisent la page chaque fois que je mets du nouveau contenu.

J'ai le code suivant afin de m'assurer que la page n'est pas mise en cache:

     <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
     <meta http-equiv="Pragma" content="no-cache"/>
     <meta http-equiv="Expires" content="0"/>

Le problème est que j'ai encore besoin de rafraîchir la page pour que le contenu le plus récent apparaisse. Est-ce que je fais quelque chose de mal? Dois-je utiliser d'autres balises?

27
Nate Pet

Les valeurs que vous avez là sont OK, mais meta http-equiv est très peu fiable . Vous devez utiliser de vrais en-têtes HTTP (les détails de la façon dont vous procédez dépendront de votre serveur, par exemple pour Apache ).

11
Quentin

Le codenippet que vous avez montré fait que le navigateur charge le site Web à chaque fois qu'il y accède , ce qui est utile si vous effectuez des mises à jour fréquentes, mais que vous avez toujours une page statique.

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>

Dans le cas où vous souhaitez qu'il exécute des mises à jour en direct , comme il le fait par exemple dans un compte de messagerie (g), vous devez le rafraîchir (certaines parties de la page) elle-même. Utilisez Javascript dans ce cas, comme il est montré dans cette question ou un appel ajax.

$('#something').click(function() {
    location.reload();
});
25
Garrin