通过XMLHttpRequest()下载时,如何避免缓存数据

时间:2011-05-22 21:44:44

标签: javascript html5 google-chrome

我正在为Chrome浏览器编写扩展程序(后来希望移植到Firefox)。扩展程序从我的服务器下载配置文件 - 通过XMLHttpRequest的xml文件。我发现它是一次下载文件,每次后续调用似乎只是使用文件的缓存原始版本。无论我是否更改服务器上的文件都无关紧要。

我读过你可以试试

xmlhttp.setRequestHeader('Pragma','Cache-Control:no-cache');

所以我已经这样做了但似乎没有任何区别。我可以获得新文件的唯一方法似乎是删除浏览器缓存 - 这显然不是我不断增长的用户的解决方案。

这似乎是一个问题,我不会是第一个体验的人 - 所以考虑到缓存规则似乎支持这个作为一个不容易避免的政策,我的问题是,什么是更好的设计?有没有我不了解的最佳做法?我应该推动而不是以某种方式拉动?

1 个答案:

答案 0 :(得分:4)

一种简单的方法是在请求中添加包含时间的无用参数。由于时间 趋于 前进而且从不向后,您可以合理地确定您的查询是唯一的,因此不会被缓存。

例如(假设URL在字符串url中):

url += '?_time=' + (new Date()).getTime();

或者,如果您的网址已有查询参数,

url += '&_time=' + (new Date()).getTime();