我是否需要修改所有链接以便对此网站进行调整?

时间:2010-02-13 18:03:18

标签: jquery ajax jquery-plugins hash browser-history

我使用ajax(通过jquery)而不是整页刷新来构建this website。目前,它不支持浏览器的后退/下一个按钮,也不支持深层链接书签。 我想使用例如jquery bbq插件来实现这些功能,但我不确定我完全理解这个概念。

我缺少的主要观点是:我是否需要修改所有链接?

例如,请使用此网址:

http://example.com/projects/title-of-project/visuals/video/

我的应用将网址转换为这些变量:

section = projects
item= title-of-project
content=visuals
id=video

php脚本检测这是否是ajax调用(因此只返回视频html)或非ajax调用(因此返回整页html,其中包含视频代码)。

如果我使用哈希值,浏览器将不会发送变量。正确?

我有点迷失,如果你需要更多细节,请不要犹豫。

1 个答案:

答案 0 :(得分:3)

基本上,hash-permalink的工作原理如下:

  1. 用户点击链接,该链接对其他URL进行AJAX调用。
  2. click事件告诉历史管理代码(比如BBQ插件)更新哈希值,即井号字符(#)之后的URL部分。
  3. 历史管理代码可确保当用户单击后退或前进按钮时,浏览器哈希将更改为其上一个或下一个状态。
  4. 历史管理代码在认为哈希值发生变化时会触发事件。
  5. 您的应用会响应该事件,并使用浏览器哈希确定从中获取内容的新网址。
  6. 例如,假设您网站上的链接使用AJAX加载来自http://example.com/some/path的内容。当用户点击该链接时,浏览器网址可能为http://yoursite.com/#some/path。单击另一个链接时,哈希值可能会更改为#some/other/path。当用户点击后退按钮时,哈希值应返回#some/path。然后,您的应用将采用当前哈希值,然后使用AJAX相应地加载http://example.com/some/path

    因此,AJAX从中获取内容的URL不必更改。那有意义吗?我可能误解了你的问题。