使用URL哈希保留Ajax页面状态

时间:2011-03-27 14:16:50

标签: ajax hash back-button particles

我的网站上有一个页面有两组标签,每个标签的链接都是ajax驱动的,但如果没有启用javascript,则有一个正确的href。我即将使用jQuery Address这样的插件实现一个ajax'后退按钮'解决方案。

我对这个解决方案的问题/困惑是,在javascript有机会解析哈希并加载正确的内容之前,页面的默认内容仍然被加载。如果我最初隐藏内容,非JavaScript用户将永远不会看到任何内容。如果我最初没有隐藏内容,用户会在更新之前看到错误的页面(除了首先加载错误的选项卡然后是正确的选项卡的额外开销)。

处理此问题的最佳/最常用方法是什么?

谢谢,Brian

2 个答案:

答案 0 :(得分:3)

如果您使用哈希,您将始终拥有错误的内容。您需要使用HTML5 History API的服务器端解决方案来避免这种情况。 Read more

您可以使用: https://github.com/browserstate/ajaxify

让标签在服务器端呈现if ( $_GET['tab'] === '2' ) // render 2

答案 1 :(得分:1)

我认为这是一个很好的问题。您是否尝试使用<noscript>标记来包含css,该css显示最初为JS用户隐藏的内容。像这样:

<style type="text/css">
  #area-1, #area-2 { display: none; }
</style>

<noscript>
  <style type="text/css">
    #area-1, #area-2 { display: block; }
  </style>
</noscript>

希望这有帮助!