Push.js 在您离开页面之前缓存上下文,并将其缓存在domCache
由导航事件的时间戳作为键的关联数组中。通过触发带有时间戳的 popstate 事件返回缓存页面。
var e = new CustomEvent('popstate')
e.state = <cached-timetamp-key>
window.dispatchEvent(e)
缓存项键是缓存回栈中的最后一项cacheMapping.cachedBackStack
因此,如果您向 push.js(在您的 ratchet.js 文件中)添加一个方法以返回 backstack 中的下一项
var getPreviousId = function () {
var backStack = JSON.parse(cacheMapping.cacheBackStack);
return backStack.length > 0 ? backStack[backStack.length -1] : null;
}
以及在哪里保存以前的 id 保存当前 id 的位置,例如 find
PUSH.id = data.id;
并添加该行以公开先前的 id
PUSH.id = data.id;
PUSH.previousId = getPreviousId(); //save previous id
然后您可以使用以下内容返回缓存页面
var e = new CustomEvent('popstate');
e.state = PUSH.previousId;
window.dispatchEvent(e);
如果您希望棘轮自动处理,则必须在适当的时候进入touchend()
方法或 PUSH() 本身调用popstate()
。