Как синхронизировать локальные данные indexedDB с сервером?
У меня есть небольшой проект, который хранит данные в IndexedDB в браузере. Я хотел бы добавить функцию синхронизации, чтобы пользователи могли получить доступ к данным везде.
Как синхронизировать локальные данные IndexedDB на удаленном сервере или базе данных сервера, чтобы иметь к ним доступ везде? Другими словами, Я хотел бы сделать эту демонстрацию доступной во всех моих браузерах. (Безопасность не является проблемой на этом этапе)
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 .