3

ユーザーがサイトにアクセスすると、空のショッピング カートがクライアント側とサーバー側に作成されます。彼が製品を SC に追加すると、サーバー側で製品を追加するために RPC 呼び出しが行われます。同じクライアント側で同期を取り、UI を更新する必要があります。そうでない場合は、古い SC への参照を持つビューに切り替えます。UI はそれに応じて更新されません (1 つの製品があるのに SC が空です)。

解決策 1

RPC 呼び出しは、更新された SC と do を返しますclientSC = returnedSC。大量のデータをネットワーク経由で転送するため、あまり効率的ではありません。

解決策 2

RPC 呼び出しは、追加された製品を返し、クライアント側で、addProduct(サーバー側のように) データストアに製品を格納する代わりに、製品をリストに追加するメソッドを呼び出します。

解決策 3

解決策 2 と同じですが、イベントを使用して、SC への参照を持つプレゼンター (私は MVP パターンを使用) に通知します。

より一般的には、クライアントとサーバー モデルの同期を維持するためのベスト プラクティスは何ですか?

4

1 に答える 1

4

gwt 2.1 に付属する RequestFactory を使用します。

http://code.google.com/webtoolkit/doc/latest/DevGuideRequestFactory.html

RequestFactory を使用すると、クライアントとサーバーの両方にデータ アクセス レイヤーを簡単に実装できます。サーバー側のコードをデータ中心の方法で構築でき、データ指向ではなくサービス指向の GWT-RPC よりも高いレベルの抽象化を提供します。クライアント側では、RequestFactory は変更されたオブジェクトを追跡し、変更のみをサーバーに送信します。これにより、ネットワーク ペイロードが非常に軽量になります。さらに、RequestFactory は、将来のリクエストの自動バッチ処理とキャッシングのための強固な基盤を提供します。

RequestFactory は独自のサーブレット RequestFactoryServlet を使用し、クライアントとサーバー間のデータ交換用に独自のプロトコルを実装します。これは、GWT-RPC のような汎用サービス向けではなく、後で説明するデータ指向サービス向けに設計されています。RequestFactory は GWT-RPC を使用せず、GWT-RPC を置き換えるものではありません。これは、クライアントとサーバーの両方に永続化レイヤーを実装するために特別に設計されています。

于 2010-12-20T17:00:19.970 に答える