在大量Ajax页面中,后退按钮/链接支持的标准技术/库是什么?

时间:2011-08-08 06:36:05

标签: javascript browser-history

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

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

如果有任何重量级的击球手库,那么

3 个答案:

答案 0 :(得分:3)

只需查找“hash-bang”一词......

你会发现......:

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

答案 1 :(得分:3)

Andreas提到的

History.js提供与HTML5 History API相同的界面,允许您直接修改页面的URL。对于旧版浏览器,如果您不希望它们只是经历刷新,它还包括HML4 HashChange功能的可选后备。

使用HTML5历史记录API可以直接修改网址,因此您不会像使用哈希时那样遇到任何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,它是发现哪些图书馆的好资源。

答案 2 :(得分:2)

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

来自他们的文件......

  

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