Javascript: 重定向时清除缓存

4
我可以使用 location.reload(true) 来刷新页面并重新获取页面。我想要将用户重定向到一个新的URL并清除缓存。
更具体地说,我有一个“清除所有cookie”按钮,点击后将用户重定向到主页。我希望主页被刷新。

你尝试过哪些方法没有成功? - AaronS
你使用什么服务器端技术?是一些高级的技术,还是只用普通的HTML? - Matt
2个回答

12

可以尝试这样做:

var loc = window.location.href; // or a new URL
window.location.href = loc + '?n=' + new Date().getTime(); // random number

编辑: 重新加载静态资源的唯一选择(请参见下面的评论)是通过在服务器端侦听“n”查询字符串,并向它们的URL附加随机数来实现。


这可能适用于页面,但不适用于其他静态资源,例如css,js。 - Matt
1
为什么不使用 window.location.href = window.location.href + "?15398293843" 呢? - Elliot Bonneville
@ElliotBonneville 为了使其易于阅读和理解。不过无论哪种方式都可以运作。 - honyovk
@MatthewJordan 话虽如此,我也不确定 location.reload(true) 是否有助于解决这个问题。我所看到的唯一文档只是简单地说它重新获取页面,没有提到其他资源。 - Matt
@ElliotBonneville 那只能起作用一次,因为那个数字也会被缓存。 - Sankha Kulathantille

-4

完全错误,location.reload(true)会在重新加载时清除缓存。此外,您可以像其他答案建议的那样,在URL的末尾附加一个数字。 - Alacritas
location.reload() 的布尔参数在 Firefox 中存在,但在其他浏览器中不存在,因此您不能依赖它在每种情况下都能正常工作。 - MarkFl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接