当用户访问该站点时,会在客户端和服务器端创建一个空的购物车。当他将产品添加到SC时,完成RPC调用以在服务器端添加产品。我们需要在同一客户端进行同步并更新UI。如果我们不这样做并切换到一个引用旧SC的视图。 UI将不会相应更新(空SC,而其中有一个产品)。
解决方案1
RPC调用返回更新的SC并执行clientSC = returnedSC
。它不是很有效,因为要通过线路传输大量数据。
解决方案2
RPC调用返回添加的产品,在客户端调用方法addProduct
,将产品添加到列表中,而不是将其存储在数据存储区中(如服务器端)。
解决方案3
与解决方案2相同,但使用事件通知主持人(我使用MVP模式),其中包含对SC的引用。
哪一个是最好的,更一般地说,保持客户端和服务器模型同步的最佳做法是什么?
答案 0 :(得分:4)
使用RequestFactory,它附带gwt 2.1。
http://code.google.com/webtoolkit/doc/latest/DevGuideRequestFactory.html
RequestFactory让它变得容易 在两者上实现数据访问层 客户端和服务器。它允许你 在a中构造你的服务器端代码 以数据为中心的方式并提供更高的 抽象级别比GWT-RPC, 这是面向服务而不是 面向数据。在客户端, RequestFactory跟踪对象 已修改且 仅发送 更改服务器,结果 在非常轻量级的网络有效负载中 。 另外,RequestFactory提供了一个 自动化的坚实基础 批量和缓存请求 未来。
RequestFactory使用自己的servlet, RequestFactoryServlet和实现 它自己的数据交换协议 在客户端和服务器之间它不是 专为通用服务而设计 像GWT-RPC,而不是 我们将看到面向数据的服务 不久。 RequestFactory不使用 GWT-RPC并不打算替换 它。它专为 实现持久层 客户端和服务器。