【问题标题】:back and forward buttons to control ajax loads用于控制 ajax 负载的后退和前进按钮
【发布时间】:2011-04-26 00:45:52
【问题描述】:

大家好,

我正在寻找一种解决方案,让后退和前进按钮控制我的 ajax 调用历史记录。

所以,如果我进行 ajax 调用,然后按“返回”,我想重新加载原始页面。

如果我进行了一次 ajax 调用,然后又进行了一次,然后按下返回按钮,我想再次进行第一次 ajax 调用。

等等...(即如果我现在按下前进按钮,第二个 ajax coll shell 将被重做 ;-))

谢谢

更新

嗯,我用一个名为jQuery Address 的非常好的 jquery 插件解决了整个问题,而且效果很好。

问题是,我在原始网站上遇到问题。我导航到mysite.foo/step1,然后我触发了一个ajax调用,然后我登陆maysite.foo/step1#/#step2,当我现在按下后退按钮时,我的内容(第2步)留在那个网站上,我无法获得关于我原来的信息登陆页面,重新加载...

修正:我有一个数组,用于存储由 step2 索引的 ajax 调用。

step1 : {id: 1, url: /ste1.php, ... },
step2 : {id: 2, url: /step2.php, ... },...

还有一个同样设置哈希的函数调用 ajax 请求。

【问题讨论】:

  • 这意味着您想将所有这些历史记录保存在某个地方。我认为您可以使用会话数组。您可以遍历该 array.Array 推送和弹出
  • 那么您将如何做到这一点,以及如何捕获单击后退按钮时触发的事件?

标签: javascript ajax jquery-plugins


【解决方案1】:

您应该将您的 ajax “状态”保存在文档位置哈希(即 http://page-url#ajax-state )中。

如果只修改哈希组件,浏览器不会重新加载页面,但浏览器历史记录会记录 URL 的更改。因此,当您按下返回时,您将能够根据存储在文档哈希中的信息重新播放 ajax 调用。

另请参阅此问题: Detecting Back Button/Hash Change in URL

【讨论】:

猜你喜欢
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
相关资源
最近更新 更多