2010-12-11 16 views
3

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

ソリューション1

RPC呼び出しが更新さSCを返し、clientSC = returnedSCを行います。それは非常に効率的ではないので、ワイヤで転送するには多くのデータが必要です。

溶液2

RPCコール添加製品を返し、クライアント側では、(サーバ側のような)データストアに格納するのではなく、リストに製品を追加するメソッドを呼び出しaddProduct

溶液3

溶液2と同じ

が、SCへの参照を有するプレゼンター(Iは、MVPパターンを使用)を通知するためにイベントを使用します。

クライアントとサーバーのモデルを同期させておくのが最も良い方法は何ですか。

答えて

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を使用せず、 を置き換えるものではありません。 のクライアントとサーバーの両方で、持続性レイヤーを に実装するために特別に設計されています。

関連する問題