当用户访问该网站时,客户端和服务器端都会创建一个空的购物车。当用户将商品添加到购物车时,会进行RPC调用以在服务器端添加产品。我们需要在客户端做同样的事情以保持同步并更新UI。如果我们不这样做,并切换到具有对旧购物车的引用的视图,则UI不会相应地更新(购物车为空,而其中有一个产品)。
解决方案1:
RPC调用返回更新后的购物车,然后执行
解决方案2:
RPC调用返回添加的产品,在客户端上调用一个
解决方案3:
与解决方案2相同,但使用事件通知演示文稿(我使用MVP模式)引用了购物车。
哪个解决方案最好?一般来说,保持客户端和服务器模型同步的最佳实践是什么?
解决方案1:
RPC调用返回更新后的购物车,然后执行
clientSC = returnedSC
。这种方法效率不高,因为要传输大量数据。解决方案2:
RPC调用返回添加的产品,在客户端上调用一个
addProduct
方法,将产品添加到列表中,而不是像服务器端那样将其存储在数据存储器中。解决方案3:
与解决方案2相同,但使用事件通知演示文稿(我使用MVP模式)引用了购物车。
哪个解决方案最好?一般来说,保持客户端和服务器模型同步的最佳实践是什么?