2012-08-23 5 views
10

IndexedDB를 사용하여 오프라인 문제를 해결하려고 노력하고 있습니다. 현재 MongoDB 데이터베이스에 저장된 데이터로 채워집니다 (있는 그대로).MongoDB 서버 데이터를 IndexedDB 로컬 저장소에 동기화합니다.

일단 데이터가 IndexedDB에 저장되면 MongoDB 서버에서 데이터가 변경 될 수 있으므로 이러한 변경 사항을 전파해야합니다. Mongo에 대해 과 같은 somehting을 수행 할 기존 프레임 워크 또는 라이브러리가 있습니까? 나는 CouchDB/PouchDB에 대해 이미 알고 있으며이 두 가지를 탐색하지 않을 것이다.

+0

) 충분합니다. – ranman

+0

매우 흥미 롭습니다. 감사합니다. 아마도 내 진짜 문제에 대한 해결책 : 오프라인 앱 작성. 이 문제를 해결할 수 있도록 답변을해야합니다. –

+0

전체 오프라인 시나리오는 지원되지 않습니다 (오프라인 로그인 + 변경 + 온라인 상태에서 서버에 동기화) : https : // groups. google.com/d/topic/meteor-core/ZVj6RFbKDq0/discussion –

답변

0

저는 IndexDB를 사용하지는 않았지만 디자인 문제는 흔하지 않습니다. 귀하의 응용 프로그램에 대한 나의 이해는 클라이언트가 MongoDB에 연결할 때 로컬 저장소에 대한 문서 세트를 가져 와서 연결을 끊는 것입니다. 그런 다음 클라이언트는 로컬로 (데이터 서버에 연결되지 않음) 작업을 수행 한 다음 변경 사항을 밀어 올릴 수 있습니다.

난 당신이 두 가지 일반적인 경우를 처리 할 수있어 그것을 볼 방법 :

  1. MongoDB를 서버가 업데이트되며, 클라이언트와 휴식 연속성, 클라이언트에 대한
    1. 설문 조사에있을 때 사용자가 변경 밀어 필요가있을 때 데이터 (타이머?) 또는
    2. 파이프
  2. 이상 통지 자유 흐름을 수 있도록 열린 웹 소켓을 유지 데이터를 다시 파이프까지
    1. 당신이 (당신의 응용 프로그램의 복잡성에 따라
    2. 충돌을 처리하기위한 서버 측 (빛) 인터페이스를 (비즈니스 규칙에 따라 분쟁 해결), 상태 변화를 확인, 비동기 적으로 다시 연결할 수 있습니다 , 색인화 된 업데이트에 MongoDB의의 상태 변화의 비교 타임 스탬프는 유성의 코드 중 하나가 관련이 있다면 당신은 볼 수
+0

이 필드에 이미 삽입되어있을 수있는 것이 있는지 알고 계십니까? 변경 사항은 로컬에서 변경되지 않았기 때문에 사용이 더 간단합니다. 사용자는 서버에 푸시되고 가능하게 수락 및/또는 거부 된 변경 요청 만 할 수 있습니다. 승인 된 경우 고객에게 다시 푸시해야합니다. 따라서이 시나리오에서는 동일한 객체에서 로컬 및 원격 변경을 수행 할 수 없습니다. –

+0

backbone.js의 영역에 뭔가있을 수 있지만 그건 내 리그에서 빠져 나간 것입니다. – patrickgamer

관련 문제