0

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

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

例如,取这个网址:

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

我的应用程序将 url 转换为这些变量:

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

php 脚本检测这是一个 ajax 调用(因此仅返回视频 html)还是非 ajax 调用(因此返回整个页面 html,其中包含视频代码)。

如果我改用哈希,浏览器将不会发送变量。对?

我有点迷茫,所以如果您需要更多详细信息,请随时发表评论。

4

1 回答 1

3

基本上,哈希永久链接是这样工作的:

  1. 用户单击一个链接,该链接对某个其他 URL 进行 AJAX 调用。
  2. 点击事件告诉历史管理代码(如 BBQ 插件)更新哈希,即井号字符 (#) 之后的 URL 部分。
  3. 历史管理代码确保当用户单击后退或前进按钮时,浏览器哈希会更改为上一个或下一个状态。
  4. 历史管理代码在认为哈希已更改时触发一个事件。
  5. 您的应用程序响应该事件并使用浏览器哈希确定从哪个新 URL 获取内容。

例如,假设您网站上的链接使用 AJAX 从http://example.com/some/path. 当用户单击链接时,浏览器 URL 可能是http://yoursite.com/#some/path. 单击另一个链接时,哈希可能会更改为#some/other/path. 当用户点击后退按钮时,哈希应该返回到#some/path. 然后,您的应用程序将获取当前哈希值,然后使用 AJAX 进行http://example.com/some/path相应加载。

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

于 2010-02-13T18:59:51.320 回答