【问题标题】:ajax requests when navigating in browser在浏览器中导航时的 ajax 请求
【发布时间】:2009-06-28 22:32:56
【问题描述】:

我有一个执行多个 ajax 请求并被修改的网页,所有 ajax 请求都缓存在页面上。然后用户单击某个链接并对另一个页面执行同步请求。然后用户点击浏览器的“返回”按钮。之前通过 ajax 加载的所有数据都将丢失。用户单击浏览器中的“返回”按钮后是否可以恢复页面状态,因此之前加载的所有数据都可以在没有新的 ajax 请求的情况下恢复?

jQuery 历史插件提供了一点帮助,它允许回到页面的正确位置,但它执行必要的 ajax 请求。另外,如果有很多 ajax 请求,很难将它们正确存储在历史记录中。

有没有办法在不使用 cookie 或服务器端的情况下解决我的问题?

【问题讨论】:

  • 不使用历史记录会很复杂。否则,您必须 pushState() 提供有关当前状态的信息。不过,在这种情况下,Cookie 可能不是一个好主意。在服务器上保存会话是一个很好的解决方案,但是,当用户几天后返回该页面时,他不太可能确切地看到他之前拥有的内容,而这可能不是您想要的......跨度>

标签: jquery ajax browser


【解决方案1】:

有没有办法解决我的问题 不使用 cookie 或服务器端?

答案很可能是“不”。用于 JS 的数据由服务器提供的数据驱动。为了保存信息,您需要将其存储在服务器上并将其发送回。

严格使用 JS 的概念会不必要地束缚你的双手。在 AJAX 调用服务器期间将这些内容保存到会话变量(因为它无论如何都与服务器通信)可能是一个相当简单的实现。

【讨论】:

    【解决方案2】:

    Really Simple History 提供了一个非常灵活的 API 来管理后退按钮的功能。

    【讨论】:

    • 我认为历史记录不允许恢复加载的 ajax 数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多