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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...