我正在为Chrome浏览器编写扩展程序(后来希望移植到Firefox)。扩展程序从我的服务器下载配置文件 - 通过XMLHttpRequest的xml文件。我发现它是一次下载文件,每次后续调用似乎只是使用文件的缓存原始版本。无论我是否更改服务器上的文件都无关紧要。
我读过你可以试试
xmlhttp.setRequestHeader('Pragma','Cache-Control:no-cache');
所以我已经这样做了但似乎没有任何区别。我可以获得新文件的唯一方法似乎是删除浏览器缓存 - 这显然不是我不断增长的用户的解决方案。
这似乎是一个问题,我不会是第一个体验的人 - 所以考虑到缓存规则似乎支持这个作为一个不容易避免的政策,我的问题是,什么是更好的设计?有没有我不了解的最佳做法?我应该推动而不是以某种方式拉动?
答案 0 :(得分:4)
一种简单的方法是在请求中添加包含时间的无用参数。由于时间 趋于 前进而且从不向后,您可以合理地确定您的查询是唯一的,因此不会被缓存。
例如(假设URL在字符串url
中):
url += '?_time=' + (new Date()).getTime();
或者,如果您的网址已有查询参数,
url += '&_time=' + (new Date()).getTime();