所有這3個庫允許操縱歷史對象。好吧,骨幹做了很多,但只考慮它的歷史部分。backbone.js,davis.js和history.js在歷史實現上的差異
- http://documentcloud.github.com/backbone/#History
- https://github.com/olivernn/davis.js
- https://github.com/browserstate/history.js
的是這3執行有區別嗎?
所有這3個庫允許操縱歷史對象。好吧,骨幹做了很多,但只考慮它的歷史部分。backbone.js,davis.js和history.js在歷史實現上的差異
的是這3執行有區別嗎?
History.js更適用於瀏覽器的polyfil,它本身不支持HTML5 pushState,並且消除了pushState的不同瀏覽器實現之間的差異。
Davis.js是一個路由層,主要位於pushState之上(儘管這可以很容易地切換到散列路由)。它給你一個簡單的API來定義和響應你的應用程序中的路由。
Backbone的路由器與Davis類似,但當pushState不可用時,它會嘗試自動回退到基於散列的路由。
作爲戴維斯的作者,我略有偏見,但我認爲戴維斯api比骨幹略勝一籌。我還認爲,當pushState不可用時,試圖優雅地處理回退到基於散列的路由不值得它可以引入的努力和複雜性。
在這裏你去:只
這真的取決於您是否需要額外的骨幹功能,在這種情況下,這是一個明顯的選擇。
Davis.js通過擴展支持基於哈希的路由 - https://github.com/olivernn/davis.js/blob/master/lib/extensions/davis.hashRouting.js –
感謝您的解釋:D –
I發現history.js在瀏覽器中支持html5 pushState可以不用「thorsteinsson/jquery-routes」和「mstahl/jQuery-Routes」。 (這些路由器需要#在URL中工作)。 因此,我不確定那些Davis.js和Backbone是否可以使用? – vee
您可以禁用主幹中的#回退 – Tosh