Arrêtez le navigateur de la mise en cache d'un fichier texte

Pendant les douze jours de Noël, je cours ce simple site Web familial. Dans le cadre de tout cela, tous les jours je modifie un fichier texte qui donnera différentes réponses / contenu chaque jour. Eh bien, j'ai un problème où je dois dire à tout le monde de supprimer le cache pour obtenir les nouvelles informations. Je n'ai jamais eu cela avant. Je viens juste d'ajouter ces deux déclarations.

<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" /> 

et

 response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. response.setHeader("Pragma", "no-cache"); // HTTP 1.0. response.setDateHeader("Expires", 0); 

Comment contrôler la mise en cache de la page Web dans tous les navigateurs?

J'ai testé que tout fonctionne bien mais je ne veux pas le tester en changeant le contenu actuel jusqu'à demain. Ma question est: est-ce qu'il existe un moyen de s'assurer que le navigateur ne cache pas les fichiers texte que j'utilise en utilisant ce code javascript

 function readInFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, true); rawFile.onreadystatechange = function() { if (rawFile.readyState === 4) { if (rawFile.status === 200 || rawFile.status == 0) { parseFile(rawFile.responseText, document.getElementById("answerText").value) } } }; rawFile.send(null); } 

Je ne veux pas que les navigateurs cessent de mettre en cache les html / j mais continuent de mettre en cache les fichiers texte. Est-ce que ce que j'ai maintenant empêché les navigateurs de faire cela? Je n'ai jamais eu un problème comme celui-ci avant> J'ai également utilisé le HTML5 Boilerplate cette fois-ci pour l'essayer si cela fait toute la différence. J'ai fini par enlever beaucoup d'entre eux.

Coin-busting

Ajoutez un paramètre aléatoire à la fin de l'url, comme l'horodatage actuel. Faites en sorte que:

 http://yourdomain.com/path/to/file.txt?t=1873261823 

Vous pouvez utiliser la new Date().getTime() ou le plus récent Date.now() ou Date.now() votre propre générateur de nombres aléatoires pour la valeur du paramètre.

Vous pouvez appeler chaque fichier quelque chose de différent.

 http://example.com/file123809.txt 

Vous pouvez y intégrer quelque PHP si vous le souhaitez.

 http://example.com/file<?php echo time(); ?>.txt 

Il existe évidemment d'autres façons d'obtenir un horodatage, voire un seul, mais je pense que la façon dont j'ai énuméré est la plus pratique, et puisque PHP est côté serveur, il fonctionnera sur tous les périphériques.