Tyler Davis Tyler Davis - 11 months ago 56
HTML Question

stop browser from caching a text file

For the twelve days of Christmas I'm running this simple family website. As part of it, everyday I edit a text file that will give different answers/content each day. Well I'm having a problem where I have to tell everyone to delete there cache to get the new info. I've never had this before. I just barely added these two statements.

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


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

found Making sure a web page is not cached, across all browsers

I tested that everything still loads fine but I do not want to test it by changing the actual content until tomorrow. My question is, is there any way to make sure that the browser does not cache the text files that I am pulling in using using this javascript code

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)

I don't want the browsers to stop caching the html/js but continue caching the text files. Will what I have now prevent the browsers from doing such? I've never had a problem like this before> I also used the HTML5 Boilerplate this time around just to try it out if that makes any difference. I ended up removing alot of it though.

Answer Source


Add a random parameter to the end of the url, like the current timestamp. Make it look like:


You can use new Date().getTime() or the more recent Date.now() or roll your own random number generator for the value of the parameter.