interrompere il browser dalla memorizzazione nella cache di un file di testo

Per i dodici giorni di Natale gestisco questo semplice sito web di famiglia. Come parte di esso, ogni giorno modifico un file di testo che fornirà risposte / contenuti diversi ogni giorno. Beh, sto avendo un problema in cui devo dire a tutti di cancellare la cache per ottenere le nuove informazioni. Non l’ho mai avuto prima. Ho appena aggiunto queste due affermazioni.

   

e

 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); 

trovato Come controllare la memorizzazione nella cache della pagina Web, attraverso tutti i browser?

Ho verificato che tutto funzioni ancora bene, ma non voglio testarlo modificando il contenuto effettivo fino a domani. La mia domanda è, c’è un modo per assicurarsi che il browser non memorizzi nella cache i file di testo che sto usando usando questo codice 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); } 

Non voglio che i browser interrompano la memorizzazione nella cache di html / js ma continuano a memorizzare nella cache i file di testo. Ciò che ho ora impedirà ai browser di farlo? Non ho mai avuto un problema come questo prima> Ho usato anche l’HTML5 Boilerplate questa volta solo per provarlo se questo fa alcuna differenza. Ho finito per rimuoverlo molto però.

Busting della cache

Aggiungi un parametro casuale alla fine dell’URL, come il timestamp corrente. Assomigli a:

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

Puoi usare new Date().getTime() o il più recente Date.now() o lanciare il tuo generatore di numeri casuali per il valore del parametro.

Puoi chiamare ogni file qualcosa di diverso.

 http://example.com/file123809.txt 

Puoi mixare alcuni PHP lì se vuoi.

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

Ci sono ovviamente altri modi per ottenere un timestamp, o anche solo un numero univoco, ma ritengo che il modo in cui ho elencato sia il più conveniente, e dal momento che PHP è lato server, funzionerà su tutti i dispositivi.