我正在编写一个AJAX应用程序,但是当用户浏览该应用程序时,尽管没有页面重新加载,我还是希望地址栏中的URL能够更新。基本上,我希望他们能够在任何时候添加书签,从而返回到当前状态。
人们如何处理维护AJAX应用程序中的RESTful?
执行此操作的方法是location.hash在AJAX更新导致您希望使用离散URL的状态更改时进行操作。例如,如果您的页面网址是:
location.hash
http://example.com/
如果客户端功能执行了以下代码:
// AJAX code to display the "foo" state goes here. location.hash = 'foo';
然后,浏览器中显示的URL将更新为:
http://example.com/#foo
这使用户可以为页面的“ foo”状态添加书签,并使用浏览器历史记录在状态之间进行导航。
使用此机制后,您将需要使用JavaScript在客户端解析URL的哈希部分,以创建并显示适当的初始状态,因为片段标识符(#后面的部分)不会发送到服务器。
如果您使用的是jQuery,那么Ben Alman的hashchange插件使后者变得轻而易举。