代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

在使用Ajax历史记录和书签时,使用“#”是否总是好的而不仅仅是“#”?

  •  4
  • nonopolarity  · 技术社区  · 14 年前

    Facebook正在使用Ajax历史记录(后退和前进按钮)和书签 #! 而不仅仅是 # 在URL中。这样做总是一个好主意,因为我认为一个普通的锚可能会干扰Ajax历史机制,从而触发它处理一个普通的锚。

    因此,Ajax历史函数只有在看到 #! # .

    ! ! ,一个猜测是,它可能会得到相当好的支持。

    2 回复  |  直到 9 年前
        1
  •  5
  •   Igor Klimer    14 年前

    Making AJAX Applications Crawlable 对于一个可能的用例(不知道这是否是Facebook使用这个片段的原因)。

        2
  •  5
  •   balupton    13 年前

    article . 它讨论了Hashbang(#!),hash(#)和HTML5历史API(pushState,popState)以及解决方案。

    关于你网站的可用性,这无关紧要,你可以使用任何你喜欢的东西。

    例如,Facebook使用!根据 Google Proposal for Making Ajax Applications Crawlable

    这样做的缺点是,它只解决了让ajax可爬行的问题。它不能解决以下问题:

    • 保持Ajax和非Ajax用户的url干净一致。你可能会以失败告终www.facebook.com/profile.php?pid=123#!profile.php?pid=123
    • 保持Ajax和非Ajax用户的url相同。
    • 对于查询字符串的状态转义和转换,需要一些非常复杂的服务器端更改。
    • 它与新系统不兼容 HTML5 PopState 旨在真正解决这些问题的功能。

    jQuery Ajaxy (如图所示) balupton.com )它只需将您的网站升级到ajax应用程序,同时保持ajax支持的丰富交互体验,并继续完美地为ajax禁用用户工作。

    推荐文章