【问题标题】:When using back button AJAX results have been lost使用后退按钮时 AJAX 结果已丢失
【发布时间】:2010-11-05 00:06:02
【问题描述】:

所以我设置了一个类似于 Twitter 的分页系统,其中显示了 20 个结果,用户可以单击一个链接来显示接下来的 20 个或所有结果。显示的结果数量可以由 URL 末尾的参数控制,但是,这不会使用 AJAX 更新,因此如果用户单击其中一个结果然后选择返回,他们必须从 20 开始返回结果。

我的一个想法是,如果我在使用 AJAX 提取结果时更新 URL,它应该(我希望)使用户能够在不丢失显示的结果的情况下来回移动。

这真的可能吗?还是我完全搞错了?

另外,我将如何更改 URL?我有一种方法可以使用 javascript 编辑 URL 并将其作为变量,但我不确定如何将该变量应用于 URL。

这里的任何帮助都会很棒!

附注:我正在使用 jQuery 的 load() 函数来完成我所有的 AJAX。

【问题讨论】:

标签: javascript jquery ajax url-rewriting hashchange


【解决方案1】:

重复线程中未提及,但仍然有用:Really Simple History (RSH)

【讨论】:

  • 我的一个链接提到了这个:)
  • 哎呀!我想我们会为了后代的缘故把它放在这里。 :-)
【解决方案2】:

这就是我要放在这里的答案:

Browser back button and dynamic elements

【讨论】:

    【解决方案3】:

    如果不重新加载页面,您实际上无法从 javascript 更改页面的 url。

    您不妨考虑改用 cookie。通过设置客户端 cookie,您可以“记住”用户希望看到多少结果。

    A good page on javascript cookies.

    【讨论】:

    • 现在,可以在不重新加载的情况下更改 URL,请参阅 stackoverflow.com/questions/3338642
    • 是的。由于这个答案不再准确,我不确定正确的 SO 操作是什么。用更多信息更新它?
    【解决方案4】:

    这个问题的答案和我对这些问题的答案差不多:

    总之,您可能想看看两个项目,它们解释了整个 hashchange 过程并将其与 ajax 一起使用:

    • jQuery History(使用哈希来管理您的页面状态并绑定到更改以更新您的页面)。

    • jQuery Ajaxy(jQuery History 的 ajax 扩展,允许完整的 ajax 网站同时完全不显眼且可优雅地降解)。

    【讨论】:

      【解决方案5】:

      谷歌返回的前 3 个结果:
      first
      second
      third

      如果我的短裤都没有用,我会吃掉它们。 ^^

      是的 - 你不能通过 JS 更改 URL。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 2018-01-01
        相关资源
        最近更新 更多