我的网站上有一个页面有两组标签,每个标签的链接都是ajax驱动的,但如果没有启用javascript,则有一个正确的href。我即将使用jQuery Address这样的插件实现一个ajax'后退按钮'解决方案。
我对这个解决方案的问题/困惑是,在javascript有机会解析哈希并加载正确的内容之前,页面的默认内容仍然被加载。如果我最初隐藏内容,非JavaScript用户将永远不会看到任何内容。如果我最初没有隐藏内容,用户会在更新之前看到错误的页面(除了首先加载错误的选项卡然后是正确的选项卡的额外开销)。
处理此问题的最佳/最常用方法是什么?
谢谢,Brian
答案 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>
希望这有帮助!