gpt4 book ai didi

http - 按 BACK 按钮时防止缓存

转载 作者:可可西里 更新时间:2023-11-01 16:23:24 25 4
gpt4 key购买 nike

当您在 Google Chrome 中按下后退按钮时,它似乎缓存了源代码(与 FF 中的 DOM 不同,但这只是观察,不是我确定知道的事情)。

有时我需要阻止这种缓存,例如当您在结帐过程中时,重定向到 paypal 等。

我该怎么做?

最佳答案

这确实是一个问题,而且似乎是 Chrome 特有的。在我的例子中,我只关心显示一个陈旧的页面,如果它包含一个表单,并且我的所有表单都是使用我编写的相同 AJAX 表单库提交的,所以我添加了这段代码以在执行重定向之前运行(重定向使用 window.location = ... 在 JS 中完成:

//If the user clicks the back button after submitting the form and being redirected,
//Google Chrome redisplays previous entries even if they have since been changed
//(its caching works differently from other browsers).
//This is a (non-foolproof) hack to try to prevent this.
if (window.chrome) {
//This re-requests the page headers for the current page,
//which causes Chrome to clear its cache of the page.
//Unfortunately there appears to be no other client-side way of preventing this caching issue in Chrome.
$.ajax({
url: window.location,
method: 'HEAD'
})
}

当然,在服务器端设置无缓存 header 会更干净,但我不想对所有 页面都这样做,我也不想这样做检测哪些页面包含表单(或在这些页面上手动设置缓存 header )只是为了防止 Chrome 中出现此问题。

我希望有更好的解决方案,但我还没有找到...

关于http - 按 BACK 按钮时防止缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11693226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com