我有一个单页应用,使用jquery ajax调用加载内容。
我制作了一个简单的后退按钮,可以覆盖移动设备的默认后退功能。
目前,我非常简单地说,当发出新的ajax请求时,我将当前页面标记存储到正文的数据变量中,然后将即将到来的页面存储到正文的数据变量中,例如:
on loading new ajax {
$('body').data('last',whatever_the_current_page_is);
$('body').data('current, whatever_the_new_page_is);
}
然后当按下后退按钮时,简单地从正文获取数据 - 并返回到这样:
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown() {
var backContent = $('body').data('last');
// load content with this data
}
问题是,这只能运行一次,我正在尝试找出如何获取一段历史记录以便人们可以遍历很多页面都会回过头来。
我如何附加一种变量日志,并访问最后添加的变量?还是倒数第二个? javascript数组会是这样做的吗?或者也许只是将整个事物存储在一个字符串中,例如:
page1,page2,page3,page4
尝试找出最简化的方法,而不会过度压低最终用户的移动计算机。
答案 0 :(得分:0)
您需要稍微修改代码以依赖url中的anchor / hash组件。这就是大多数服务实现它的方式。让我们说,截至目前,您在点击链接后进行ajax调用。您需要更改它以将哈希组件添加到URL。例如,
http://mydomain.com/pages#page=pageid
然后你需要监听hashchange事件并根据它进行ajax调用。这将允许浏览器记住历史记录。
要收听hashchange事件,您可以使用jQuery BBQ插件: