返回和前进按钮用于控制ajax加载

3

大家好,

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

因此,如果我进行了一个ajax调用,然后按下“返回”按钮,我希望重新加载原始页面。

如果我执行了一个ajax调用,然后再执行另一个,然后按下后退按钮,我希望再次执行第一个ajax调用。

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

谢谢

更新

好的,我使用一个非常好的jquery插件解决了整个问题,名为jQuery Address,它运行得很好。

问题是,我无法回到原始网站。我浏览到mysite.foo/step1,然后触发一个ajax调用,我就会降落到maysite.foo/step1#/#step2,当我现在按下返回按钮时,我仍然停留在那个带有其内容的站点(即 step2),而且我无法获取关于我的原始着陆页面的信息,以重新加载它...

修订:我有一个数组,其中我存储了按i.e. step2索引的ajax调用。

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

还有一个函数,它也设置了哈希值,并调用了ajax请求。


那就意味着你想要将这些历史记录保存在某个地方。我认为你可以使用会话数组。 你可以遍历该数组,使用数组的推入和弹出方法。 - zod
那么你会怎么做呢?我该如何捕获当我点击返回按钮时触发的事件? - helle
1个回答

3
你应该将ajax的“状态”保存在文档位置哈希中(例如http://page-url#ajax-state)。如果你只修改哈希部分,浏览器不会重新加载页面,但是浏览器历史记录将记录URL的更改。因此,当你按下返回按钮时,你可以根据文档哈希中存储的信息重新执行ajax调用。
另请参见此问题:检测后退按钮/ URL中的哈希变化

1
在这个网址上有一些代码示例和参考资料:https://dev59.com/7nVD5IYBdhLWcg3wXaed - user460331

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接