当用户按下浏览器上的后退按钮时,如何强制重新加载Ajax内容?

时间:2012-07-16 16:02:23

标签: jquery ajax caching browser-cache

我有一个产品详情页面,其中列出了使用Ajax的产品,分页和一些过滤器。

这一切都很好,但我发现当用户点击产品然后使用后退按钮返回到产品列表页面时,Ajax内容无法正确加载。如果我刷新页面就可以了。

我已经在产品页面上添加了一个动态后退按钮,可以返回并正确加载,但我需要在用户点击后退按钮时尝试捕获。

我尝试了以下内容:

  • 使缓存控制必须重新验证,因此当浏览器返回时,页面会刷新。
  • 抓住用户点击产品页面上的事件,并使用后退按钮使用的链接重定向它们。

不幸的是,这些都不适合我,所以我想知道是否有人有任何想法。

1 个答案:

答案 0 :(得分:0)

这是我的解决方案,当浏览器按钮被拒绝时强制浏览器刷新页面,它对我有用:

//disable ajax cache it solves that the Ajax content doesn't load properly when back button is clicked
$.ajaxSetup({ cache: false });
//force reload page on back browser button
window.onpopstate = function(event) {
    if(event && event.state) {
        location.reload()
    }
}