3

当用户访问该站点时,会在客户端和服务器端创建一个空的购物车。当他将产品添加到 SC 中时,会执行 RPC 调用以在服务器端添加产品。我们需要做同样的客户端来同步和更新 UI。如果我们不这样做并切换到引用旧 SC 的视图。UI 不会相应更新(SC 为空,而其中只有一个产品)。

解决方案 1

RPC 调用返回更新后的 SC 并执行clientSC = returnedSC. 它不是很有效,因为要通过网络传输大量数据。

解决方案 2

RPC 调用返回添加的产品,并在客户端调用addProduct将产品添加到列表而不是将其存储在数据存储中的方法(如在服务器端)。

解决方案 3

与解决方案 2 相同,但使用事件通知引用了 SC 的演示者(我使用 MVP 模式)。

哪一个是最好的,更一般地说,保持客户端和服务器模型同步的最佳实践是什么?

4

1 回答 1

4

使用随 gwt 2.1 一起提供的 RequestFactory。

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

RequestFactory 可以轻松地在客户端和服务器上实现数据访问层。它允许您以以数据为中心的方式构建服务器端代码,并提供比 GWT-RPC 更高级别的抽象,GWT-RPC 是面向服务而不是面向数据的。在客户端,RequestFactory 跟踪已修改的对象并仅将更改发送到服务器,这会产生非常轻量级的网络负载。此外,RequestFactory 为未来请求的自动批处理和缓存提供了坚实的基础。

RequestFactory 使用自己的 servlet,RequestFactoryServlet,并实现自己的协议,用于客户端和服务器之间的数据交换。它不是为像 GWT-RPC 这样的通用服务而设计的,而是为面向数据的服务而设计的,我们很快就会看到。RequestFactory 不使用 GWT-RPC,也不打算替换它。它专为在客户端和服务器上实现持久层而设计。

于 2010-12-20T17:00:19.970 回答