ユーザーがサイトにアクセスすると、空のショッピング カートがクライアント側とサーバー側に作成されます。彼が製品を SC に追加すると、サーバー側で製品を追加するために RPC 呼び出しが行われます。同じクライアント側で同期を取り、UI を更新する必要があります。そうでない場合は、古い SC への参照を持つビューに切り替えます。UI はそれに応じて更新されません (1 つの製品があるのに SC が空です)。
解決策 1
RPC 呼び出しは、更新された SC と do を返しますclientSC = returnedSC
。大量のデータをネットワーク経由で転送するため、あまり効率的ではありません。
解決策 2
RPC 呼び出しは、追加された製品を返し、クライアント側で、addProduct
(サーバー側のように) データストアに製品を格納する代わりに、製品をリストに追加するメソッドを呼び出します。
解決策 3
解決策 2 と同じですが、イベントを使用して、SC への参照を持つプレゼンター (私は MVP パターンを使用) に通知します。
より一般的には、クライアントとサーバー モデルの同期を維持するためのベスト プラクティスは何ですか?