backbone.js – 什么是pushState?

前端之家收集整理的这篇文章主要介绍了backbone.js – 什么是pushState?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我看到最新的backbone.js(0.5)介绍了用于路由的pushState选项.

阅读https://developer.mozilla.org/en/dom/manipulating_the_browser_history
我不得不说,这不是很清楚:pushState是什么,在使用骨干编写Web应用程序的时候,pushState是什么呢?是为了:

改进网址:具有“真实”,书签,“服务器可达”的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

当我导航到http://localhost#hello时,该url更改为http://localhost/#hello,但回调不被触发?

谢谢

解决方法

您的路由表中不需要#前缀.尝试这个:
routes :
    ''       : 'index'
    'hello'  : 'hello'

至于pushState我认为它们都是上述的.这意味着服务器端的工作要比您对位置哈希进行更多的工作,因为您必须确保您的服务器可以为所有这些URL提供页面.

猜你在找的JavaScript相关文章