4

ember-data RESTアダプターでEmber.jsを使用する場合、サーバーへの永続データを処理するための何らかの競合解決戦略はありますか?

少なくとも、私の場合、競合が発生した場合は、ユーザーに通知できれば、失敗してロールバックするだけで十分です。それで、これにはある種のデータ/構造が必要になるでしょうか?サーバーが送信されたバージョンをチェックし、クライアントが最新のデータを持っていることを確認できる、モデル上のある種の「バージョン」ID。これを少し手動でなくすためにEmber.jsに何かありますか?もしそうなら、何ですか?

編集:また、モデルの一括コミットの競合に役立つものはありますか?複数の子モデルに対して「hasMany」関係を持つ親モデルがあり、それらすべてが同時にデータベースに永続化されるとします。サーバー側のコードを処理するだけの場合、使用しているデータベースのトランザクションでこれをまとめることができ、何かが古くなっていると失敗する可能性があると思います。これはEmber.jsトランザクションにどのように変換されますか?

AdapterクラスにフラグbulkCommitが表示されます。これにより、1回のリクエストで同じタイプのオブジェクトを一括コミットできるようです。ただし、複数のタイプのレコードを保持している場合、サーバーへの複数のリクエストが発生します。a)サーバーへの1つのリクエストでこれを実行する方法、またはb)ember-dataのトランザクションをサーバー上のトランザクションと照合する方法はありますか?サーバー上のトランザクションが失敗し、ロールバックする必要がある場合は、残り火-データトランザクションも失敗しますか?

[今後のプロジェクトでEmber.jsを評価し、いくつかの機能とその開発方法をテストしています。実際には、socket.ioなどを使用したよりリアルタイムの更新を検討しています。derby.jsが自動競合解決に向けていくつかの動きをしたようです]

4

1 に答える 1

0

こちらの Ember データ ソース コードでわかるように、422 HTTP ステータス コードとエラーをディクショナリとして返すことができます。エラーは、Ember Data ライブラリによってキーによってモデルのプロパティとしてモデルに追加され、モデル自体は無効と見なされます。エラーのある各プロパティが変更されると、モデルは自動的にこの状態から抜け出します。

バージョンプロパティのエラーを監視し、reloadRecord同時実行エラーが表示されると、

于 2013-04-20T11:59:35.437 に答える