ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • BackBone Sync
    Developer/HTML+Script 2014. 4. 14. 14:07


    `Backbone.sync()`를 호출하는 각 메서드는 아래와 같이 동작한다.


    fetch()
    1. 서버에 'GET' 요청을 보낸다. `sync('read');`를 호출한다.
    2. 서버 응답으로 `model.set()`을 호출하는데,
        2.1. 유효하지 않은 데이터이면(`validate()`에 실패하면) `false`를 리턴한다.
               이 때엔, `change`와 `sync` 이벤트 둘 다 발생하지 않는다.
        2.2. 유효한 데이터이면, 모델을 설정하고 `change` 이벤트를 발생한다.
               `silent` 옵션이 켜져있다면 발생하지 않는다.
    3. 요청에 성공하고 모델 셋팅까지 성공했다면, `sync` 이벤트가 발생한다.


    save()
    1. 요청 전 `validate()`를 검사한다.
    1. 새 모델이면(`isNew()`, `id` 여부로 판단) `POST`, 아니라면 `PATCH` 또는 `PUT` 요청을 보낸다.
    2. `wait: true` 속성 옵션이 있다면 서버 응답 후, 아니라면 요청 직후 모델에 셋팅한다.
        2.1. `set()`에 따라 `change` 이벤트가 발생할 수 있다.
    3. 유효한 데이터였다면, `sync` 이벤트를 호출한다.


    destroy()
    1. `id`가 발급되지 않은 새 모델이면 바로 `success()`를 호출하고 요청하진 않는다.
    2. 'DELETE` 요청을 보낸다.
    3. `wait: true` 옵션이거나 새 모델이면, `destroy()`를 호출한다.
        3.1 `destroy` 이벤트가 발생한다.
    4. `sync` 이벤트가 발생한다.


    'Developer > HTML+Script' 카테고리의 다른 글

    META 태그  (0) 2014.04.29
    [JQuery] 마우스 이벤트와 브라우져별 지원 이벤트에 대한 관계  (0) 2013.09.27
    [JSON] json2.js 그리고 tostring  (0) 2013.09.10
    [CSS] CSSPrefixer  (0) 2013.09.04
    [jQuery] Widget  (0) 2013.08.20
© 2018 T-Story. All right reserved.