使用后退按钮时,AJAX结果已丢失

时间:2009-06-22 22:03:22

标签: javascript jquery ajax url-rewriting hashchange

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

我曾经想到的是,如果我在使用AJAX提取结果时更新URL,我应该希望 - 让用户能够来回移动而不会丢失显示的结果数。

这实际上是可行的,还是我完全错了?

另外,我将如何更改网址?我有办法用javascript编辑URL并让它成为变量,但我不确定如何将该变量应用于URL。

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

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

5 个答案:

答案 0 :(得分:3)

副本线程中没有提及,但仍然有用:Really Simple History (RSH)

答案 1 :(得分:2)

这将是我在这里提出的答案:

Browser back button and dynamic elements

答案 2 :(得分:1)

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

您可能希望考虑使用Cookie。通过设置客户端cookie,您可以“记住”用户喜欢看多少结果。

A good page on javascript cookies.

答案 3 :(得分:1)

这个问题的答案或多或少与我对这些问题的答案相同:

总之,您可能希望查看的两个项目解释整个hashchange过程并将其与ajax一起使用:

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

  • jQuery Ajaxy(jQuery历史记录的ajax扩展,允许完整的ajax网站,同时完全不引人注目且可以优雅地降级)。

答案 4 :(得分:-3)

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

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

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