2011-07-02 4 views
10

최신 백본을 보았습니다. js (0.5)는 라우팅을 위해 pushState 옵션을 도입했습니다.푸시 스테이트 란 무엇입니까?

https://developer.mozilla.org/en/dom/manipulating_the_browser_history 을 통해 읽은 후에 나는 푸시 스테이트가 무엇이며 푸시 스테이트가 백본으로 웹 애플리케이션을 작성하는 맥락에서 가져온 것이 정확히 무엇인지 분명하지 않습니다.

  • 개선 된 URL : 그것은을위한 해시에 반대하는 '진짜'북마크 된 '서버에 연결할 수'URL을 가지고?

  • graceful degradation : 서버가 JS를 사용하지 않고 올바른 페이지를 렌더링 할 수있게 하시겠습니까?

  • 위/모두 또는 기타 이유?

    내가 http://localhost#hello로 이동
    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이 http://localhost/#hello로 변경되지만, 콜백 해고되지 않습니다? 또한

, 내가 잘못 아래에 무엇을하고 있는가?

감사

답변

2

당신은 당신의 라우팅 테이블에 # 접두어가 필요하지 않습니다. 이것을 시도하십시오 :

나는 둘 다 위와 같다고 생각합니다. 서버가 모든 URL에 대해 페이지를 제공 할 수 있어야하므로 위치 해시와 관련하여 서버 측에서 더 많은 작업이 필요하다는 것을 의미합니다.

관련 문제