所有这 3 个库都允许操作历史对象。好的,backbone 做的更多,但我们只考虑它的历史部分。
- http://documentcloud.github.com/backbone/#History
- https://github.com/olivernn/davis.js
- https://github.com/browserstate/history.js
这 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/