【问题标题】:What are the standard techniques/libraries for back button/linking support in heavily Ajax pages?大量 Ajax 页面中后退按钮/链接支持的标准技术/库是什么?
【发布时间】:2011-08-08 06:36:04
【问题描述】:

一段时间后我才回到 Web 开发,现在我正在构建大量 Ajax 化页面,以使用 javascript 加载/隐藏网站的整个部分,我很震惊这往往会导致网站与书签和浏览器的后退按钮不兼容。在没有统一的后退按钮 API 的情况下,我确信存在各种技术、注意事项和可能的 javascript 库来处理这个问题。

有哪些可用的技术?我知道一个涉及计时器和哈希链接的?你有什么建议?

如果有的话,谁是值得关注的重磅图书馆,

【问题讨论】:

    标签: javascript browser-history


    【解决方案1】:

    只要寻找“hash-bang”这个词...

    你会发现类似的东西:

    并且,仅供参考,有 PushState API(仅现代浏览器支持!)(gitHub 使用它来导航源树)

    【讨论】:

      【解决方案2】:

      Andreas 提到的History.js 提供了与HTML5 History API 相同的界面,允许您直接修改页面的URL。对于较旧的浏览器,如果您不希望它们仅体验刷新,它还包括对 HML4 HashChange 功能的可选回退。

      使用 HTML5 History API 允许您直接修改 url,因此您不会像使用哈希时那样遇到任何 SEO 或 js 禁用问题。 You can read more about the issue of HTML5 History API VS. Hashes VS. Hashbang right here

      History.js 还支持所有的 javascript 框架,并且在即将发布的版本中将支持甚至不使用任何框架。还有this snippet of code you can use, which will ajaxify most websites automatically without any extra or custom code

      除了可选的 HTML4 浏览器支持之外,您还想使用 History.js 的原因是 HTML5 History API 本身是不可用的。每个浏览器实现处理它的方式都非常不同,在某些情况下根本不起作用。 You can find a listing of all the known cross-browser quirks with the native implementations here.

      还有Modernizr's HTML5 Cross Browser Polyfills Wiki Page,这是一个很好的资源,可以帮助您发现哪些库在那里。

      【讨论】:

        【解决方案3】:

        查看backbone.js,它在浏览器中提供了一个轻量级 MVC 模型,利用 URL 片段来表示页面的不同变体。

        来自他们的文档...

        Web 应用程序经常选择更改其 URL 片段 (#fragment) 以便为 Ajax 密集型应用程序提供可共享、可收藏的 URL。 Backbone.Router 提供路由客户端 URL 片段并将它们连接到操作和事件的方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-13
          • 1970-01-01
          • 1970-01-01
          • 2018-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-22
          相关资源
          最近更新 更多