微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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提供页面.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐