Как синхронизировать локальные данные indexedDB с сервером?


У меня есть небольшой проект, который хранит данные в IndexedDB в браузере. Я хотел бы добавить функцию синхронизации, чтобы пользователи могли получить доступ к данным везде.

Как синхронизировать локальные данные IndexedDB на удаленном сервере или базе данных сервера, чтобы иметь к ним доступ везде? Другими словами, Я хотел бы сделать эту демонстрацию доступной во всех моих браузерах. (Безопасность не является проблемой на этом этапе)

1 12

1 ответ:

На самом деле, в IndexedDB не так много для синхронизации базы данных. Вам нужен только RESTful сервис для репликации с сервера на клиент и наоборот.

Для эффективной синхронизации служба должна поддерживать etag (http spec) для каждой записи, обновляемой (ATOM spec) для коллекций. Кроме того, для поддержки возобновляемого обновления необходимы totalResults, startIndex, itemsPerPage (OpenSearch spec) и упорядочивание по обновленным.

При получении записи - Если-не-соответствия указанного заголовка в тег сущности, чтобы получить полное преимущество кэширования, когда поставив рекорд 'если-Match заголовка указывается по разрешению конфликта на стороне клиента. Для обновления коллекции запрос ограничивается параметром updated, поэтому возвращаются только записи, отсутствующие в клиентской базе данных.

Именно так я стараюсь реализовать свою оболочку API IndexedDB с открытым исходным кодом. Смотрите пример приложения https://github.com/yathit/feature-matrix в angularjs иdemo .

Также посмотрите на PouchDB .