2011-12-01 31 views

Trả lời

15

History.js là nhiều hơn một polyfil cho các trình duyệt không hỗ trợ HTML5 pushState và cho sự khác biệt giữa các triển khai trình duyệt khác nhau của pushState.

Davis.js là lớp định tuyến, chủ yếu ở trên cùng của pushState (mặc dù điều này có thể được chuyển dễ dàng sang định tuyến băm). Nó cung cấp cho bạn một api đơn giản để xác định và trả lời các tuyến đường trong ứng dụng của bạn.

Bộ định tuyến của Backbone tương tự như Davis, tuy nhiên nó cố gắng tự động quay trở lại định tuyến dựa trên băm khi pushState không khả dụng.

Là tác giả của Davis Tôi hơi thiên vị nhưng tôi nghĩ rằng Davis api hơi đẹp hơn và mạnh hơn xương sống. Tôi cũng nghĩ rằng cố gắng để xử lý một cách duyên dáng rơi trở lại định tuyến dựa trên băm khi pushState không có sẵn là không có giá trị nỗ lực và phức tạp mà nó có thể giới thiệu.

+0

Cảm ơn bạn đã giải thích: D –

+0

I thấy rằng history.js với hỗ trợ pushState html5 trong trình duyệt canNoT làm việc với "thorsteinsson/jquery-routes" & "mstahl/jQuery-Routes". (các bộ định tuyến này yêu cầu # trong url hoạt động). vì vậy, tôi không chắc chắn đó là những Davis.js và Backbone sẽ làm việc với? – vee

+0

Bạn có thể vô hiệu hóa dự phòng thành # trong xương sống – Tosh

0

Ở đây bạn đi:

  • davis.js chỉ hỗ trợ HTML5 history.pushState. Các trình duyệt không hoạt động với nó không được hỗ trợ, vì vậy có thể không phải là một tùy chọn.
  • Cả xương sống và history.js đều có dự phòng để thay đổi.
  • Như bạn đã biết xương sống cũng có MVC và thông qua gạch dưới mà nó phụ thuộc cho bạn những người trợ giúp bổ sung cho các công cụ chức năng.

Nó thực sự phụ thuộc vào việc bạn có cần thêm chức năng Backbone trong trường hợp đó là lựa chọn hiển nhiên hay không.

+1

Davis.js hỗ trợ định tuyến dựa trên băm thông qua tiện ích mở rộng - https://github.com/olivernn/davis.js/blob/master/lib/extensions/davis.hashRouting.js –

Các vấn đề liên quan