【问题标题】:How can I force the browser/javascript to clear/ignore a cached file?如何强制浏览器/javascript 清除/忽略缓存文件?
【发布时间】:2015-02-18 17:31:20
【问题描述】:

我有一个 Javascript 程序,它从文本文件(只是一个普通的 *.txt 文件)中提取数据,然后将其显示在表格中。它按预期工作,除了一个问题:如果我更新数据所在的文本文件,则更新不会显示在表格上。原因是文件正在被浏览器缓存。

有没有办法强制 Javascript 从文件的最新版本而不是从缓存版本中读取?同样,这不是 javascript 文件的问题,因为执行 Ctrl-5 和或 Shift+Ctrl+ R 不起作用,并且更新 javascript 文件本身的行为也符合预期。只有数据所在的文件才是问题所在。

为了读取文本文件,我使用了使用 AJAX 读取文件的 Webix 工具包。文本文件的读取和解析是通过 Javascript 和 Webix 工具包完成的。我的程序中的 html 很少。

//the name of the file is dependant of an user specified input
var theURL = rossObj.store_number.store_number + "macaddress.txt ";

webix.ajax(theURL,{
    //response
    error:function(text, xml, XmlHttpRequest){
        webix.alert({ ok:"OK", type:"alert-warning", text:"could not open the following URL --> "+theURL, width:"400px"});
        return "mac_address_error";
    },
    success:function(text, xml, XmlHttpRequest){
        //parse the file;
    }
});

【问题讨论】:

  • 如何更新文本文件?手动还是通过脚本?你怎么称呼它?标准href?可以在html中添加js吗?
  • 我将更新我的帖子以包含更多信息和部分代码

标签: javascript html caching


【解决方案1】:

尝试在url末尾添加一个随机数作为查询字符串,服务器会忽略但浏览器会将其视为新文件

var theURL = rossObj.store_number.store_number +
    "macaddress.txt?" +
    Math.floor((Math.random() * 10000) + 1);

【讨论】:

  • 浏览器认为这是与由于查询字符串而缓存的文件不同的文件。服务器忽略查询字符串,认为它是由文件处理的,只是将其传递过去
猜你喜欢
  • 2016-02-18
  • 2019-01-02
  • 2016-10-01
  • 2016-09-01
  • 2015-10-29
相关资源
最近更新 更多