修改AJAX应用程序中的地址栏URL以匹配当前状态

我正在编写一个AJAX应用程序,但是当用户在应用程序中移动时,我希望地址栏中的URL能够更新,尽管没有重新加载页面。基本上,我希望他们能够在任何时候添加书签,从而返回到当前状态

人们如何在AJAX应用程序中维护RESTfulity

实现这一点的方法是,当AJAX更新导致状态更改时,操纵location.hash,您希望使用一个离散的URL。例如,如果页面的url为:

http://example.com/

如果客户端函数执行此代码:

//此处显示“foo”状态的AJAX代码。
location.hash='foo';

然后,浏览器中显示的URL将更新为:

http://example.com/#foo

这允许用户为页面的“foo”状态添加书签,并使用浏览器历史记录在状态之间导航

有了这个机制,您就需要在客户端使用JavaScript解析URL的散列部分,以创建并显示适当的初始状态,因为片段标识符(在#之后的部分)不会发送到服务器

如果您使用jQuery,Ben Alman的hashchange插件可以轻松实现后者

发表评论