GWT 保持同步客户端和服务器模型
Posted
技术标签:
【中文标题】GWT 保持同步客户端和服务器模型【英文标题】:GWT Keep in sync client and server model 【发布时间】:2010-12-11 00:27:29 【问题描述】:当用户访问该站点时,会在客户端和服务器端创建一个空的购物车。当他将产品添加到 SC 中时,会执行 RPC 调用以在服务器端添加产品。我们需要做同样的客户端来同步和更新 UI。如果我们不这样做并切换到引用旧 SC 的视图。 UI 不会相应更新(SC 为空,而其中只有一个产品)。
解决方案 1
RPC 调用返回更新后的 SC 并执行clientSC = returnedSC
。这不是很有效,因为要通过网络传输大量数据。
解决方案 2
RPC 调用返回添加的产品,并在客户端调用方法addProduct
将产品添加到列表中,而不是将其存储在数据存储中(就像在服务器端一样)。
解决方案 3
与解决方案 2 相同,但使用事件通知具有对 SC 的引用的演示者(我使用 MVP 模式)。
哪个是最好的,更一般地说,保持客户端和服务器模型同步的最佳实践是什么?
【问题讨论】:
【参考方案1】:使用随 gwt 2.1 提供的 RequestFactory。
http://code.google.com/webtoolkit/doc/latest/DevGuideRequestFactory.html
RequestFactory 可以很容易地 在两者上实现数据访问层 客户端和服务器。它允许您 将您的服务器端代码构建在一个 以数据为中心的方式并提供更高的 抽象级别高于 GWT-RPC, 这是面向服务而不是 面向数据的。在客户端, RequestFactory 跟踪对象 已修改且仅发送 更改服务器,结果 在非常轻量级的网络负载中。 此外,RequestFactory 提供了一个 自动化的坚实基础 请求的批处理和缓存 未来。
RequestFactory 使用自己的 servlet, RequestFactoryServlet,并实现 自己的数据交换协议 客户端和服务器之间。它不是 专为通用服务而设计 像 GWT-RPC,但更适合 我们将看到的面向数据的服务 不久。 RequestFactory 不使用 GWT-RPC 并不打算取代 它。它专为 实现持久层 客户端和服务器。
【讨论】:
以上是关于GWT 保持同步客户端和服务器模型的主要内容,如果未能解决你的问题,请参考以下文章