javascript - backbone.js、davis.js 和 history.js 的历史实现差异

标签 javascript backbone.js browser-history history.js

所有这 3 个库都允许操作历史对象。好的,backbone 做的更多,但我们只考虑它的历史部分。

这 3 种实现之间有什么区别?

最佳答案

History.js 更像是一个 polyfil,适用于 native 不支持 HTML5 pushState 的浏览器,并消除 pushState 的不同浏览器实现之间的差异。

Davis.js 是一个路由层,主要位于 pushState 之上(尽管它可以很容易地切换为散列路由)。它为您提供了一个简单的 API 来定义和响应应用程序中的路由。

Backbone 的路由器与 Davis 类似,但它会尝试在 pushState 不可用时自动回退到基于哈希的路由。

作为 Davis 的作者,我有点偏见,但我认为 Davis api 比 backbone 更好,更强大。我还认为,在 pushState 不可用时尝试优雅地处理回退到基于哈希的路由是不值得付出努力和引入复杂性的。

关于javascript - backbone.js、davis.js 和 history.js 的历史实现差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349686/

相关文章:

javascript - 多个谷歌图表

javascript - 渲染后的主干布局管理器

javascript - 在 Backbone.js 的 View 中实例化模型是一种反模式吗?

javascript - 在 Facebook 的 Chrome 扩展中使用 onpopstate

Javascript新手问题

javascript - 子网格未填充在免费的 jqGrid 中

javascript - 禁用默认用户/密码浏览器弹出窗口

jquery - backbone.js JSON解析错误

javascript - 如何检索先前打开的窗口的 URL?

ajax - ASP.NET 4.0 路由 + ajax + 浏览器历史记录