在浏览器刷新时保存XHR渲染状态


Save XHR rendered state upon browser refresh

我有一个php页面,上面有Home、About Us、Profile等菜单。现在在主页上,如果单击"About Us"链接,页面不会被重新加载,而是在主div中显示Ajax响应"About Us"。但如果用户现在重新加载窗口,主页的信息就会被显示,但我想在主div中保留"About Us"信息,就像在页面重新加载之前一样。提前感谢。。。

您需要做一些事情,比如在url中添加一个散列,这样您就可以重新呈现页面的正确状态。

#!/About-us

在你的代码中,检查你是否有一个糟糕的哈希,如果有,做正确的渲染。这是一个非常幼稚的技术实现。我强烈建议你看看其中一个伟大的框架。

HTML:

<a href="#!/About-us">About us</a>​

Javascript:

function renderAbout() {
 alert("render about");   
}
var hash = window.location.hash;
if (hash === "#!/About-us")
    renderAbout();
​

演示

有很多框架可以帮助您实现这一点:

十字路口.js
Finch.js
David.js
jQuery BBQ

这是一个关于他们的堆叠式讨论。这里讨论了为什么#!/About-us而不仅仅是#About-us