我有一个页面上有很多动态生成的复选框。当用户单击这些复选框时,页面上的许多内容会通过ajax动态更改。最终用户抱怨说,点击提交后点击后退按钮来改变某些内容,他们的选择就会被吹走,他们必须重新做一遍。如何使浏览器返回按钮通过AJAX调用返回?
我已经看到一些网站(Gmail,Facebook等)使用URL中的哈希符号来破解后退按钮,以便它执行AJAX调用,而不是返回到前一个完整页面请求。我想这样做是为了在页面提交之前修改URL,以便点击后退按钮将加载他们以前选择的字段。
例如:
在Gmail中,如果我查看我的收件箱,然后我的URL看起来是这样的:https://mail.google.com/mail/?shva=1#inbox
然后如果我点击“发送邮件”进行AJAX调用和我的网址修改为看起来像这样:https://mail.google.com/mail/?shva=1#sent
我真的很喜欢这种行为,并且想要复制它。这是如何完成的?
不要你的链接实际上触发任何JavaScript还是仅仅链接到的URL与适当的散列符号信息?
如何读取JavaScript中的哈希符号信息?
这种类型的导航如何影响搜索引擎?搜索引擎是否知道除了散列之后的信息相同的两个URL实际上是不同的URL并将它们编入索引之后呢?
我应该考虑这种技术的其他优点和缺点?
注:我使用C#与ASP.NET Web窗体和ASP.NET MVC 3.0万一重要。
也从这个线程得到的想法http://stackoverflow.com/questions/973739/how-can-i-get-the-same-page-with-the-click-of-back-button-of -browser/973753#973753 – 2011-05-10 05:16:11
这算不上什么我一直在寻找穆罕默德。 – Chev 2011-05-10 13:54:51