使用AJAX进行可链接导航?

时间:2014-11-22 01:38:21

标签: javascript html ajax hyperlink navigation

刚刚进入网络编程,当谈到导航时,到目前为止,我更喜欢在点击菜单链接时使用Javascript和AJAX请求来更改内容的想法。它很快,没有页面刷新,很棒。唯一的问题是网站的网址始终保持不变。因此,我不能将某人链接到"关于"页。解决这个问题的标准方法是什么? 我目前只使用HTML,JavaScript和jQuery。

2 个答案:

答案 0 :(得分:1)

通常你会使用两种方法中的一种。取决于您需要支持的浏览器集:

更改哈希 - 您可以更改网址(http://.../index.html#about-page)的哈希部分,而无需重新加载页面。因此,例如,当您点击'关于'链接,您可以使用类似于此的内容设置URL的哈希值:

window.location.hash = 'bla-bla';

当你的页面加载时,你解析哈希部分并执行必要的逻辑:

if (window.location.hash === 'about-page') {
    // ...
}

另一种方法是使用历史API' - 在现代浏览器中,您可以使用名为“历史API”的api。它允许您更改浏览器的历史记录,包括URL。您在pushState对象上使用名为history的方法,例如:

window.history.pushState({ event: 'event-id' }, "Event Title", "?event=event-id");

有关详细信息,您可以查看我之前发布的上一个答案: How to manage browser "back" and "forward" buttons when creating a javascript widget

答案 1 :(得分:0)

真的取决于您使用的框架。这始终是JSF的经典批评,它与使用Put请求作为其通信方法的一部分具有相同的效果。他们在以后的版本中提出了一些变化。

但是,是否有标准方法很难说,毫不含糊。我已经看到战略性地使用了Put请求。这会让网址发生变化,但这就是你要避免的完整提交。

一些javascript库允许您自己修改网址。我不记得我们用过哪些。

在任何一个cae中你的应用都需要满足这种深度导航,因为你让用户能够直接移动到以前可能无法访问的页面