【问题标题】:How can you force Ajax content to reload when a user presses the back button on a Browser?当用户按下浏览器上的后退按钮时,如何强制重新加载 Ajax 内容?
【发布时间】:2012-07-16 16:02:23
【问题描述】:

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

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

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

我尝试了以下方法:

  • 使缓存控件必须重新验证,以便在浏览器返回时刷新页面。
  • 捕捉用户点击产品页面的事件,并使用后退按钮使用的链接重定向他们。

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

【问题讨论】:

标签: jquery ajax caching browser-cache


【解决方案1】:

这是我的解决方案,当点击后退浏览器按钮时强制浏览器刷新页面,它适用于我:

//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()
    }
}

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多