2012-10-21 27 views
10

Tôi có một dự án nhỏ lưu trữ dữ liệu trong IndexedDB trong trình duyệt. Tôi muốn thêm chức năng đồng bộ hóa để người dùng có thể truy cập dữ liệu ở mọi nơi.Làm cách nào để đồng bộ hóa dữ liệu cục bộ được lập chỉ mụcDB với Máy chủ?

Làm cách nào để đồng bộ hóa dữ liệu IndexedDB cục bộ trong máy chủ từ xa hoặc cơ sở dữ liệu máy chủ để tôi có thể truy cập ở mọi nơi? Nói cách khác, tôi muốn làm cho this demo có sẵn trong tất cả các trình duyệt của tôi. (Bảo mật không phải là vấn đề trong giai đoạn này)

+0

hãy xem câu hỏi tương tự này: http://stackoverflow.com/questions/12914646/standard-way-of-keeping-offline-db-and-online-db-synced –

Trả lời

13

Thực tế, không có nhiều trên IndexedDB để đồng bộ hóa cơ sở dữ liệu. Bạn chỉ cần RESTful dịch vụ để nhân rộng từ máy chủ đến máy khách và ngược lại.

Để đồng bộ hóa hiệu quả, dịch vụ phải hỗ trợ etag (HTTP spec) cho mỗi bản ghi, được cập nhật (ATOM spec) cho các bộ sưu tập. Ngoài ra để hỗ trợ cập nhật có thể tiếp tục, totalResults, startIndex, itemsPerPage (OpenSearch spec) và đặt hàng bằng cách cập nhật là cần thiết.

Khi xác định tiêu đề 'If-None-Match' của bản ghi được xác định, để nhận được lợi ích bộ nhớ đệm đầy đủ, Khi PUTting tiêu đề 'If-Match' của bản ghi được xác định để giải quyết xung đột về phía máy khách. Để cập nhật bộ sưu tập, truy vấn bị giới hạn bởi tham số được cập nhật, để chỉ các bản ghi không có trong cơ sở dữ liệu khách được trả về.

Đó là cách tôi tham dự để triển khai trên trình bao bọc API API chỉ mục API mở của tôi. Xem ví dụ ứng dụng https://github.com/yathit/feature-matrix trong angularjs và demo.

Đồng thời xem PouchDB.

+2

PouchDB trông có vẻ ngoài, tìm tốt! Cảm ơn! Liên kết tại đây: http://pouchdb.com/ –

Các vấn đề liên quan