1. ホーム
  2. html

[解決済み] ローカルのHTML5 DB(WebSQL Storage、SQLite)をサーバーと同期する最適な方法(2ウェイ同期)【終了しました

2022-04-28 20:18:20

質問

私は、ローカルデータベース(html5 webstorageを使用)を使用したモバイルWebアプリケーション(iPhoneおよびAndroid用)を開発しています。

これは完璧に機能していますが、ローカルのデータをサーバーに保存したいのです。そこで、ローカルのDBをサーバー上のDBと同期させる必要があります。同期は片道だけですが、将来的には両方の方法で同期させたいと思います(サーバー <-> ローカルDB)。

この要求は非常に一般的(またはモバイルウェブアプリでは将来的に一般的になる)なようですが、それを行うライブラリは見当たりません。

googleがモバイルウェブアプリ(例:gmail)でやっているのは知っていて、その中で WSPLプロジェクト googleのプロジェクトですが、ダウンロードできるソースがありません。

解決策が見つからなければ、ワンウェイ同期が難しくなさそうなので、そのためのライブラリを作る予定ですが、他に解決策はないのでしょうか。

どのように解決するのですか?

  • という名前の小さなJSライブラリを作成しました。 WebSqlSync ローカルのWebSql DBをサーバと同期させる(クライアント <-> サーバ)ためのもの。非常に使いやすく、あなたのコードに統合することができます。

https://github.com/orbitaloop/WebSqlSync

  • オープンソースプロジェクト QuickConnect HTML5のSQLite DBをサーバーDB(MySQLなど)に同期させるJSライブラリが含まれています。

http://quickconnect.pbworks.com/Using-Enterprise-Synchronization

このライブラリを使用するには、フレームワークのDataAccessObjectを使用してDBにアクセスする必要があります。DBに適用されたすべてのSQLリクエスト(もちろんselectは除く)を保存し、サーバーに送信することで動作します。削除を管理するには最適ですが、更新が多い場合は少し重いですし、サーバーも同じSQL言語を使用する必要があります...

  • の別プロジェクト。 クイックコネクト は、ネイティブな SQLite 同期(iOS または Mac OS では Objective C で、Android では Java で)です。

http://www.quickconnectfamily.org/qcdbsync/ (全てのSQLリクエストの履歴も保存されていると思います。)

  • そして、もう一つ有望なJSライブラリを見つけました。 パーシスタンスJS

https://github.com/zefhemel/persistencejs

"persistence.jsは、非同期のJavascriptオブジェクトリレーショナルマッパーライブラリです。ブラウザ上でもサーバ上でも使用することができます(そして、両者間でデータモデルを共有することができます)"

DBシンクモジュールがあるそうです。 persistence.synch.jsのDOC

(クライアントではHTML5 DB SQLiteまたはGoogle Gears、サーバーではMySQLで動作します)

  • また インペル.inTouch . これは非常に使いやすく見えますが(phpファイルが含まれている)、クライアント側でMootoolsフレームワークを使用する必要があります。

http://impel.simulacre.org/api/Impel.inTouch

  • また、Senchaには同期サービスもあります。 Sencha.io . 見た目は素晴らしいですが、Sencha Touchフレームワークに依存しています。

http://www.sencha.com/products/io/