Backbone.js 国家是干什么的?

Backbone.js 国家是干什么的?,backbone.js,Backbone.js,我看到最新的backbone.js(0.5)为路由引入了pushState选项 通读之后 我不得不说,我并不十分清楚:在编写具有主干的web应用程序的背景下,pushState是什么,以及pushState到底带来了什么;是为了: 改进url:有一个真正的、可书签的、可访问服务器的url,而不是散列 优雅降级:允许服务器在不启用JS的情况下呈现正确的页面 以上两项/无一项,或其他原因 还有,下面我做错了什么 class MyRouter extends Backbone.Router r

我看到最新的backbone.js(0.5)为路由引入了pushState选项

通读之后 我不得不说,我并不十分清楚:在编写具有主干的web应用程序的背景下,pushState是什么,以及pushState到底带来了什么;是为了:

  • 改进url:有一个真正的、可书签的、可访问服务器的url,而不是散列

  • 优雅降级:允许服务器在不启用JS的情况下呈现正确的页面

  • 以上两项/无一项,或其他原因

还有,下面我做错了什么

class MyRouter extends Backbone.Router
  routes :
    ''       : 'index'
    '#hello' :'hello'

  index : -> console.log 'index'
  hello: -> console.log 'hello'

new MyRouter

Backbone.history.start pushState: true
当我导航到时,url会更改为,但不会触发回调

谢谢

您不需要路由表中的#前缀。试试这个:

  routes :
    ''       : 'index'
    'hello'  : 'hello'
至于pushState,我认为这两者都有。这确实意味着服务器端的工作要比位置散列的工作更多,因为您必须确保您的服务器可以为所有这些URL提供页面