在AJAX应用程序中重写URL



我正在制作一个简单的在线应用程序。我有一个带有几个按钮的导航栏和一个" DIV",将所有新内容都动态加载到其中,即当我单击"关于"时,它会将页面零件加载到"div"中,而无需重新加载整个页面。load()函数。问题是:如果我需要提供网站文档部分的链接,或者用户想要存储此类链接,则在浏览我的网站时不会重写URL。当用户存储默认链接时,它将始终将他链接到默认的" home"部分。

如何重写URL,最正确的方法是什么?

作为选项,您可以使用location.hash
例如。用户点击<a href="#about">About</a>
并且您正在加载"关于"页面的内容。此外,浏览器地址栏中的URL将更改为诸如http://mysite.com/hello.jsp#about之类的。

因此,现在用户可以复制此URL并访问它。

然后,在$(document).ready()中,您可以检查location.hash,在其中找到'#about'锚固,然后加载适当的内容。


另一种选择是使用Backbone.js或您喜欢的任何其他JavaScript MVC框架,这些框架将帮助您构建丰富的客户端应用程序并将为您处理此类内容。

根据我的说法,适当的方法是更新URL的哈希。例如example.com/#about等。人们可以为这些书签。当您阅读URL中的哈希标签并加载相应的页面时,您必须小心拨打Ajax调用。

我要做的就是在hashchange事件上进行ajax调用,而不是单击。该活动从IE8到所有现代浏览器都得到支持。如果您想支持IE7使用Ben Alman的Hashchange插件。

最新更新