2011-12-01 4 views

답변

15

History.js는 기본적으로 HTML5 pushState를 지원하지 않는 브라우저 및 pushState의 다른 브라우저 구현 사이의 차이를 다림질을위한 polyfil의 더 많은 것이다. (이것은 라우팅 해시 용이하게 전환 될 수있다)

Davis.js 주로 pushState 위에, 라우팅 계층이다. 애플리케이션 내의 경로를 정의하고 응답하는 간단한 API를 제공합니다.

백본의 라우터는 그러나 그것은 pushState를 사용할 수없는 경우 자동으로 기반 라우팅을 해시 후퇴하려고 데이비스와 유사하다. 데이비스의 저자로

나는 약간 편견 해요하지만 데이비스 API는 백본보다 약간 더 좋은 더 강력하다 생각합니다. pushState를 사용할 수 없을 때 해시 기반의 라우팅으로 정상적으로 돌아가는 것을 적절하게 처리하려고 시도하는 것은 그것이 도입 할 수있는 노력과 복잡성에 가치가 없다고 생각합니다.

+0

감사합니다 : D –

+0

I 브라우저에서 html5 pushState를 지원하는 history.js가 "thorsteinsson/jquery-routes"및 "mstahl/jQuery-Routes"와 함께 작동 할 수 있음을 발견했습니다. (이 라우터는 작동하려면 url이 필요합니다). 그래서 Davis.js와 Backbone이 함께 작동하는지 확신 할 수 없습니까? – vee

+0

폴백을 # 백본에서 비활성화 할 수 있습니다 – Tosh

0

당신은 이동 :

  • davis.js에만 HTML5 history.pushState가 지원합니다. 브라우저에서 작동하지 않는 브라우저는 지원되지 않으므로 아마도 옵션이 아닙니다.
  • backbone 및 history.js는 모두 onhashchange로 전환됩니다.
  • 이미 알고 계시 겠지만, 백본은 또한 MVC를 사용하며 밑줄을 쳐서 기능적 요소에 대한 추가 도우미를 제공합니다.

실제로 백본의 추가 기능이 필요한지 여부에 따라 달라집니다. 분명히 선택해야합니다.

+1

Davis.js 확장을 통해 지원 해시 기반 라우팅을 수행 - https://github.com/olivernn/davis.js/blob/master/lib/extensions/davis.hashRouting.js 설명은 –