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

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

【问题讨论】:

    标签: php javascript ajax


    【解决方案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

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

    crossroads.js
    Finch.js
    David.js
    jQuery BBQ

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

    【讨论】:

    • 谢谢你....但请您提供示例代码,我将不胜感激
    • @GitanjalBhattacharjya 我刚刚更新了一个幼稚的实现。
    • 非常感谢您提供的资源。作为一个新手,我可能需要一点时间才能正确掌握它......我可能再次需要你的帮助......
    • 那些框架有点大。他们可能对你来说太过分了。您可以直接使用我向您展示的技术。
    • 感谢您的帮助...我已经使用 Jquery BBQ 解决了这个问题
    猜你喜欢
    • 2018-04-25
    • 2020-08-12
    • 1970-01-01
    • 2016-09-07
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多