我刚回到Web开发一段时间之后,现在正在构建大量的Ajax-ified页面,用javascript加载/隐藏网站的整个部分,我很害怕这往往会导致网站与书签和浏览器的后退按钮不兼容。在没有统一的后退按钮API的情况下,我确信存在各种技术,可以做和不做,并且可能存在javascript库来处理这个问题。
有哪些可用的技术?我知道一个涉及计时器和哈希链接?你有什么建议?
如果有任何重量级的击球手库,那么
答案 0 :(得分:3)
只需查找“hash-bang”一词......
你会发现......:
并且,仅供参考,有PushState API(现代浏览器仅支持!)(gitHub使用它来浏览源树)
答案 1 :(得分:3)
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片段并将它们连接到操作和事件的方法。