2010-12-11 66 views
3

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

解决方案1 ​​

RPC调用返回更新SC和做clientSC = returnedSC。这不是非常有效,因为通过电线传输大量数据。

溶液2

RPC调用返回时添加的产品和在客户端侧,调用一个方法addProduct,该产品添加到列表中,而不是在数据存储中存储它的(如在服务器端) 。

溶液3

同溶液2,但使用一个事件以通知有一个SC的参考演示者(I使用MVP模式)。

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

回答

4

使用RequestFactory,它与gwt 2.1一起提供。

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

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

RequestFactory使用其自己的服务程序, RequestFactoryServlet,并实现 它自己的协议客户端和服务器之间的数据交换 。它不是 设计用于通用服务 像GWT-RPC,而是为 面向数据的服务,我们将很快看到 。 RequestFactory不使用 GWT-RPC,并且不打算替换 它。它专门为 而设计,在客户端和服务器上都实现了一个 持久层。