Jquery 我需要修改所有的链接,以ajaxify这个网站吗?

Jquery 我需要修改所有的链接,以ajaxify这个网站吗?,jquery,ajax,jquery-plugins,hash,browser-history,Jquery,Ajax,Jquery Plugins,Hash,Browser History,我使用ajax(通过jquery)而不是整页刷新构建。目前,它不支持浏览器的后退/下一步按钮,也不支持深度链接书签。 我想实现这些功能,例如使用jquery插件,但我不确定我是否完全理解这个概念 我缺少的要点是:我需要修改所有链接吗 例如,以以下url为例: http://example.com/projects/title-of-project/visuals/video/ 我的应用程序将url转换为以下变量: section = projects item= title-of-projec

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

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

例如,以以下url为例:

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,其中包含视频代码)

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


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

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

  • 用户单击一个链接,该链接对其他URL进行AJAX调用
  • click事件告诉历史管理代码(如BBQ插件)更新哈希,即URL中磅字符(#)后面的部分
  • 历史记录管理代码确保当用户单击“后退”或“前进”按钮时,浏览器哈希将更改为其上一个或下一个状态
  • 历史记录管理代码在认为哈希值已更改时触发事件
  • 您的应用程序会响应该事件,并使用浏览器哈希确定要从中获取内容的新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不必更改。这有意义吗?我可能误解了你的问题。

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

  • 用户单击一个链接,该链接对其他URL进行AJAX调用
  • click事件告诉历史管理代码(如BBQ插件)更新哈希,即URL中磅字符(#)后面的部分
  • 历史记录管理代码确保当用户单击“后退”或“前进”按钮时,浏览器哈希将更改为其上一个或下一个状态
  • 历史记录管理代码在认为哈希值已更改时触发事件
  • 您的应用程序会响应该事件,并使用浏览器哈希确定要从中获取内容的新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不必更改。这有意义吗?我可能误解了你的问题。

    不,你的解释确实有助于我澄清问题。所以基本上,我不需要更改url?如果我理解正确,这意味着每次单击时,我必须告诉脚本应该存储在哈希中的内容。我浏览了bbq插件文档,但不太明白如何操作。你不需要更改页面的URL,只需更改页面末尾的哈希(默认情况下,你可以通过
    window.location.hash
    访问)。在插件页面上向下滚动到“历史记录和通过hashchange事件添加书签”部分。它有一些示例代码,可以进一步解释。祝你好运不,你的解释对我澄清事情很有帮助。所以基本上,我不需要更改url?如果我理解正确,这意味着每次单击时,我必须告诉脚本应该存储在哈希中的内容。我浏览了bbq插件文档,但不太明白如何操作。你不需要更改页面的URL,只需更改页面末尾的哈希(默认情况下,你可以通过
    window.location.hash
    访问)。在插件页面上向下滚动到“历史记录和通过hashchange事件添加书签”部分。它有一些示例代码,可以进一步解释。祝你好运