我有这个功能从特定位置读取文本文件:
<html>
<head>
<script>
function readTextFile(file){
var out_text=''
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function (){
if(rawFile.readyState === 4){
if(rawFile.status === 200 || rawFile.status == 0){
var allText = rawFile.responseText;
out_text=allText;
}
}
}
rawFile.send(null);
return out_text;
}
</script>
</head>
<body>
<div id="file_txt"></div>
<script>
txt = readTextFile('http://arbsq.net/dchampolu/champolu_data.txt');
document.getElementById("file_txt").innerHTML=txt;
</script>
</body>
</html>
问题是我想读取一个不断变化的文本文件: http://arbsq.net/dchampolu/champolu_data.txt
当我运行此函数一次时,浏览器缓存文本文件,然后每次运行代码时,它只获取缓存版本,而不是更新版本。
我总是可以告诉用户清理这个缓存和这类东西,但有没有一种方法可以通过JavaScript或jQuery强制浏览器只使用当前版本的文件而不是缓存版本?
答案 0 :(得分:3)
您可以设置服务器以告知客户端不要缓存文件,也可以在URL中使用缓存破坏程序。
对于缓存清除,只需在末尾添加一个具有唯一值的查询字符串
rawFile.open("GET", file+'?dc='+(new Date()).getTime(), false);
答案 1 :(得分:2)
对于虚拟随机数,您也可以使用时间戳
例如:'http://arbsq.net/dchampolu/champolu_data.txt?' + (new Date()).getTime()