GWT保持客户端和服务器模型同步

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

4
使用RequestFactory,它是与GWT 2.1一起提供的。

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

RequestFactory可以轻松地在客户端和服务器上实现数据访问层。它允许您以数据为中心的方式构建服务器端代码,并提供比面向服务的GWT-RPC更高级别的抽象。在客户端方面,RequestFactory跟踪已修改的对象,并仅发送更改到服务器,从而产生非常轻量级的网络负载。此外,RequestFactory为未来自动批处理和请求缓存提供了坚实的基础。
RequestFactory使用自己的servlet,即RequestFactoryServlet,并实现自己的协议来在客户端和服务器之间进行数据交换。它不是像GWT-RPC那样为通用服务设计的,而是为我们很快将要看到的面向数据的服务而设计的。RequestFactory不使用GWT-RPC,也不打算替换它。它专门用于在客户端和服务器上实现持久性层。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接