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

Posted

技术标签:

【中文标题】在浏览器刷新时保存 XHR 渲染状态【英文标题】:Save XHR rendered state upon browser refresh 【发布时间】:2012-08-21 09:38:53 【问题描述】:

我有一个 php 页面,其中包含 Home、About Us、Profile 等菜单。现在在主页上,如果单击“About Us”链接,该页面不会重新加载,而是“About Us”的 Ajax 响应显示在一个主分区。但是如果用户现在重新加载窗口,主页的信息就会显示出来,但我想在主 div 中保留“关于我们”的信息,就像页面重新加载之前一样。提前致谢...

【问题讨论】:

【参考方案1】:

您需要执行一些操作,例如向 url 添加哈希,以便重新呈现页面的正确状态。

点赞#!/About-us

在你的代码中检查你是否有一个哈希值,如果是,则进行正确的渲染。 Here 是这个技术的一个非常幼稚的实现。我强烈建议您查看其中的众多优秀框架。

html

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

javascript

function renderAbout() 
 alert("render about");   


var hash = window.location.hash;

if (hash === "#!/About-us")
    renderAbout();
​

demo

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

cros-s-roads.jsFinch.jsDavid.jsjQuery BBQ

Here 是关于它们的 *** 讨论。 而here 是关于为什么#!/About-us 而不仅仅是#About-us 的讨论

【讨论】:

谢谢你....但请您提供示例代码,我将不胜感激 @GitanjalBhattacharjya 我刚刚更新了一个幼稚的实现。 非常感谢您提供的资源。作为一个新手,我可能需要一点时间才能正确掌握它......我可能再次需要你的帮助...... 那些框架有点大。他们可能对你来说太过分了。您可以直接使用我向您展示的技术。 感谢您的帮助...我已经使用 Jquery BBQ 解决了这个问题

以上是关于在浏览器刷新时保存 XHR 渲染状态的主要内容,如果未能解决你的问题,请参考以下文章

浏览器刷新后如何保持 React 组件状态

刷新页面时保存用户的选择

Ajax总结·

cookie带状态返回

关于xhr和ajax的一些理解

我应该刷新浏览器以使用 Routes | 渲染我的组件反应JS