2011-04-23 2 views
42

Backbone.js (https://github.com/jeromegn/Backbone.localStorage)의 localstorage 모듈을 사용해 보았습니다. 내가 이해할 때 Backbone.sync에 과부하가 걸리므로 백본이 서버로 이동하지 않습니다 (?). 이상적으로, 내 데이터를 서버로 전달하고 온라인 상태 일 때 로컬로 유지하고 오프라인 일 때 localstorage 만 사용하는 것이 이상적입니다 (완벽한 앱). 아직 어떤 문서도 찾지 못했습니다.Backbone.js는 rest와 localstorage를 할 수 있습니까?

Backbone.localStorage는이 부분입니까? 누구나이 시나리오를 구축 할 수 있습니까? 어떻게 처리 할 수 ​​있습니까? (내 자신을 굴릴 필요가 없다고 말해주십시오.)

고마워요.

답변

45

Backbone.localStorage는 Backbone.Sync를 덮어 쓸 수있는 외부 파일입니다.

사용자가 오프라인인지 또는 온라인인지 여부를 간단한 기능 검색을 사용하여 오프라인 인 경우 Backbone.localStorage.js를 비동기 적으로로드 할 수 있습니다.

특정 버전의 Backbone.sync을 모델 및 컬렉션에 전달할 수도 있습니다.

두 가지를 동시에 수행하려면 서버를 호출하고 localStorage를 호출하는 자체 Backbone.sync 버전을 작성해야합니다.

이 작업을 수행하는 가장 쉬운 방법은 정의하는 것입니다

Backbone.sync = function() { 
    originalSync.apply(this, arguments); 
    localStorageSync.apply(this, arguments); 
} 

편집 : 최신 백본 localStorage plugin를 사용하는 경우 당신은 다음과 같은

을 할 수있는, 코멘트에서 언급 한 바와 같이

Backbone.sync = function Sync() { 
    Backbone.ajaxSync.apply(this, arguments); 
    return Backbone.localSync.apply(this, arguments); 
}; 
+0

의미가 있습니다. 나는 오프라인을 할 때 원본을 놓고 둘 다 생각하는 것이 가장 바람직하다고 생각한다. 이 시나리오에 대한 개인적인 경험이 있습니까? – LeRoy

+2

@LeRoy 아니지만 'originalSync' 주변에 일부 기능이 감지되어 온라인 상태가 올바른지 확인합니다. 또한 실제 서버를 "권한"으로 설정 한 다음 오프라인 스토리지로 만드십시오. 그리고 오프라인에서 변경된 사항을 모니터링하고 배치로 서버에 푸시하는 시스템을 구축하십시오. – Raynos

+0

거기에 로컬 스토리지 + 오프라인 동기화를 동시에 참조 할 수있는 예제 응용 프로그램이 있습니다. – Pankaj

관련 문제