Oli*_*ale 15

对于浏览器来说,History.js更像是一个polyfil,它本身不支持HTML5 pushState,并且可以解决pushState的不同浏览器实现之间的差异.

Davis.js是一个路由层,主要在pushState之上(虽然这可以很容易地切换到哈希路由).它为您提供了一个简单的api来定义和响应应用程序中的路由.

Backbone的路由器类似于Davis,但是当pushState不可用时,它会尝试自动回退到基于散列的路由.

作为戴维斯的作者,我有点偏颇,但我认为戴维斯api比主干更好,更强大.我还认为,当pushState不可用时,尝试优雅地处理回退到基于散列的路由是不值得的,它可以引入的努力和复杂性.