大家好,
我正在寻找一个解决方案,其中后退和前进按钮控制我的 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 调用。
关于javascript - 用于控制 ajax 加载的后退和前进按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943989/