19

ブラウザのIndexedDBにデータを保存する小さなプロジェクトがあります。ユーザーがどこからでもデータにアクセスできるように、同期機能を追加したいと思います。

リモートサーバーまたはサーバーデータベースのローカルIndexedDBデータを同期して、どこからでもアクセスできるようにするにはどうすればよいですか?つまり、このデモをすべてのブラウザで利用できるようにしたいと思います。(このフェーズではセキュリティは問題ではありません)

4

1 に答える 1

17

実際、データベースを同期するためのIndexedDBはあまりありません。サーバーからクライアントへ、またはその逆に複製するために必要なのは、 RESTfulサービスのみです。

効果的な同期のために、サービスは各レコードのetag(HTTP仕様)をサポートし、コレクションの更新(ATOM仕様)を行う必要があります。さらに、再開可能な更新をサポートするには、totalResults、startIndex、itemsPerPage(OpenSearch仕様)、および更新による順序付けが必要です。

etagのレコード'If-None-Match'ヘッダーを取得する場合は、キャッシュを完全に活用するために、レコードをPUTする場合は' If-Match'ヘッダーを指定して、クライアント側の競合を解決します。コレクションを更新するために、クエリは更新されたパラメータによって制限されるため、クライアントデータベースにないレコードのみが返されます。

これが、オープンソースのIndexedDBAPIラッパーに実装するために参加する方法です。anglejsとデモのサンプルアプリhttps://github.com/yathit/feature-matrixを参照してください。

PouchDBも見てください。

于 2012-10-22T22:57:30.093 に答える