javascript - 用于控制 ajax 加载的后退和前进按钮

标签 javascript ajax jquery-plugins

大家好,

我正在寻找一个解决方案,其中后退和前进按钮控制我的 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 请求。

最佳答案

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

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

另见这个问题: Detecting Back Button/Hash Change in URL

关于javascript - 用于控制 ajax 加载的后退和前进按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943989/

相关文章:

java - Spring REST API,将原始类型传递给 Controller

javascript - jQuery 正常提交表单或使用 Font Awesome 按钮根据变量使用 Ajax 提交表单

javascript - 单击按钮时如何移动轮播项目?

javascript - 脚本的大小(外部链接)+将它们合并为 1

javascript - 带有水平和垂直滚动的固定主题的表格

javascript - 如果 fetch 中 boolean 为 false 如何跳过 next .then() ?

javascript - 是否可以让 knockoutjs 更新 'initialdata' 对象?

PHP如何在弹出模式中获取用户ID(变量)

jquery 数据表插件似乎无法正确对带有链接的列进行排序

jquery - 绑定(bind)到消息中的特殊字符 - la Facebook