我可以制作一个Javascript按钮强制浏览器忽略缓存吗?

时间:2013-02-21 00:02:42

标签: javascript vb.net caching asp-classic

我知道这有很多,但我找不到适合我情况的解决方案。我跟在别人的asp.net代码后面。我们的网站生成了大量的html和xml文件,用户可以看到这些文件。在一个地方,动态生成以加载其中一个页面的链接实际上是一个微型形式,使浏览器认为数据正在提交并寻找新的东西。但另一个是一个按钮,后面的vb代码中生成的链接使用javascript函数在新窗口中打开页面。我已经尝试在最后用“?submit = .....”模拟表单提交,但它没有用。

tl; dr什么javascript函数可以打开一个页面并告诉浏览器获取最新版本,忽略缓存?

2 个答案:

答案 0 :(得分:3)

在JavaScript中,我认为防止缓存的唯一方法是修改网址。一个技巧是使用当前日期作为时间戳:

url = url + "?_ts="+new Date().getTime();

(当然,如果您的网址已包含查询字符串,则将?替换为&)

答案 1 :(得分:0)

没有JavaScript可以满足您的需求。如果您需要新版本,最简单的方法是在URL的查询字符串中添加时间戳。

<script type="text/javascript" src="/js/file?cacheBuster=<?= DateTime.Now ?>" > </script>

为了更好地控制,您可以使用构建版本作为cacheBuster参数,这样您就不必每次都请求新文件。