質問: ローカルhtml5 db(websqlストレージ、sqlite)をサーバーと同期する最良の方法(2方向同期) ローカルデータベース(html5 webstorageを使用)を使用してモバイルwebアプリケーション(iphoneおよびandroid用)を開発しているため、ユーザーがオフラインでもアプリを使用できます。これは完全に機能していますが、ローカルデータをサーバーに保存したいです。したがって、ローカルdbをサーバー上のdbと同期する必要があります。同期は一方向にしかできませんが、将来的には双方向(サーバー<->ローカルdb)で同期したいと思います。この要件は非常に一般的です(またはモバイルwebアプリでは今後一般的になります)が、それを行うライブラリが見つかりません。googleがモバイルwebアプリ(例:gmail)でそれを行っていることを知っています。そして、 wsplプロジェクト googleプロジェクトですが、ダウンロードするソースがありません。解決策が見つからない場合は、同期をとるのが難しくないように、それを行うためのライブラリを作成しますが、他の解決策があるのではないかと思います。
回答: websqlsyncという名前の小さなjsライブラリを作成して、ローカル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言語を使用する必要がある場合は少し重いです... quickconnectの別のプロジェクトは、ネイティブのsqlite同期です(iosまたはmac osのobjective cおよびandroidのjava): http://www.quickconnectfamily.org/qcdbsync/ (すべてのsql要求の履歴も保存すると思います) そして、私はちょうど別の有望なjsライブラリを見つけました:persistencejs https://github.com/zefhemel/persistencejs 「persistence.jsは非同期javascriptオブジェクトリレーショナルマッパーライブラリです。サーバー上でもブラウザでも使用できます(また、データモデルをそれらの間で共有できます)。」db同期モジュールがあります: doc of persistence.synch.js (クライアントではhtml5 db sqliteまたはgoogle gears、サーバーではmysqlで動作します) また、impel.intouchもあります。非常に使いやすいように見えますが(phpファイルが含まれている場合)、クライアント側でmootoolsフレームワークを使用する必要があります。 http://impel.simulacre.org/api/impel.intouch senchaには同期サービスもあります:sencha.io。見た目は素晴らしいですが、sencha touchフレームワークに依存しています。 http://www.sencha.com/products/io/