在AJAX应用程序中重写URL

时间:2012-10-21 22:58:05

标签: javascript jquery url web

我正在制作一个简单的在线申请。 我有一个带有几个按钮和一个“div”的导航栏,所有新内容将动态加载到其中,即当我点击“关于”时,它会将页面部分加载到“div”而不重新加载整个页面。 load()函数。问题是: 如果我需要链接到我的网站的“文档”部分,或者用户想要存储此类链接,那么在浏览我的网站时不会重写该网址。当用户存储默认链接时,它将始终将他链接到默认的“主页”部分。

如何重写网址以及最正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

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

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

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


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

答案 1 :(得分:1)

据我所知,适当的方法是更新URL的哈希值。类似于example.com/#About等的东西。人们可以为这些添加书签。当您在URL中读取哈希标记并加载相应页面时,您必须注意进行AJAX调用。

我要做的是在hashchange事件上进行ajax调用而不是点击。从IE8到所有现代浏览器都支持此事件。如果你想支持IE7,请使用Ben Alman的hashchange plugin