2

私は、データベースへのすべての変更が JavaScriptに即座にミラーリングされる必要があるリアルタイム JavaScript アプリケーションに取り組んでおり、その逆も同様です。

現在、JavaScript に変更が加えられると、API に対して ajax 呼び出しを行い、対応する変更を DOM に加えます。サーバーでは、API がリクエストを処理し、PubNub を使用して他の現在の JavaScript ユーザーに変更を加えたプッシュを送信して終了します。また、JavaScript がプッシュを逃した場合にデータ セット全体を再同期できるようにするためのシーケンシャルな changeID も含めます。そのプッシュの例を次に示します。

{
    "changeID":"2857693",
    "type":"update",
    "table":"users",
    "where":{ 
        "id":"32"
    },
    "set":{
        "first_name":"Johnny",
        "last_name":"Applesead"
    }
}

JavaScript がこの変更を取得すると、ローカル ストレージを更新し、変更されているテーブルに基づいて対応する DOM の変更を行います。私の問題は DOM の更新に関するものではなく、データベースから JavaScript へのデータの迅速かつシームレスな同期に関するものであることを覚えておいてください。

これを見ていくと、これは合理的に単純であるべきものに対する非常に複雑な解決策であると思わずにはいられません。私はガッチャを見逃していますか?複数の JavaScript クライアントを MySQL データベースとシームレスに同期するにはどうすればよいでしょうか?

4

2 に答える 2

0

数か月後に質問を更新するだけです-私はこの方法に固執することになり、それは非常にうまく機能します。

于 2013-01-11T21:12:33.963 に答える
0

これは古い質問であることは知っていますが、まったく異なるコンテキストではありますが、まったく同じ問題に多くの時間を費やしてきました。Phonegap アプリを作成していますが、オフラインで動作し、後で同期する必要があります。

私にとっての大きな啓示は、私が本当に必要としているのはブラウザーとサーバーの間のバージョン管理であり、それが私が作ったものだということです。これらのセットとバージョン内setsおよびその中にデータを保存し、それらすべてを個別に保存します。keys問題が発生した場合、それを解決するために使用できる競合解決コールバックがあります。

プロジェクトを GitHub に置いたところです。URL はhttps://github.com/forbesmyester/SyncItです。

于 2013-06-02T18:52:27.910 に答える