我正在寻找一种有效的方法将 aResultSet
转换为可以通过 GWT-RPC 发送的形式,该形式通常可以成为 GWT 服务器-客户端通信的一部分。使用 JSON 与 RequestFactory 的优缺点是什么?如果我想如上所述使用它们,有人愿意解释它们吗?
说我想在客户端处理大部分数据库而不仅仅是单个条目可能很重要。我一次谈论数百个条目,所以我基本上认为我需要一种有效传输数据的方法。
一次请求一个条目不会产生很大的开销吗?
类似的教程将不胜感激。
我正在寻找一种有效的方法将 aResultSet
转换为可以通过 GWT-RPC 发送的形式,该形式通常可以成为 GWT 服务器-客户端通信的一部分。使用 JSON 与 RequestFactory 的优缺点是什么?如果我想如上所述使用它们,有人愿意解释它们吗?
说我想在客户端处理大部分数据库而不仅仅是单个条目可能很重要。我一次谈论数百个条目,所以我基本上认为我需要一种有效传输数据的方法。
一次请求一个条目不会产生很大的开销吗?
类似的教程将不胜感激。
移动大块数据通常是一个非常糟糕的主意,并且对于客户端-服务器架构来说并不典型。所以我建议重新设计。
GWT-RPC 是面向服务的。所有 RPC 框架都是。主要目的是对方法调用进行序列化/反序列化。换句话说,服务器和客户端正在通信的是必须明确定义的消息。在 GWT 中,底层传输机制是 JSON,而在 SOAP(例如)中是 XML,但机制是相同的。
RequestFactory 更加以数据为中心。想象一个由带有 URL /getCustomers 的简单 HTTP 请求触发的 servlet。servlet 只是访问数据库并返回结果。RequestFactory 非常类似,但提供了额外的功能。例如,RequestFactory 依赖于在服务器上创建实体对象 Customer 和在客户端上创建代理对象 CustomerProxy。该框架处理这些对象之间的数据传输。更具体地说,RequestFactory 可以更新单个属性(即“字段”),因此可以通过仅发送状态差异来提高效率。
一个重要的架构差异是 GWT-RPC 在更多功能级别上运行。RequestFactory 在数据级别运行。一个典型的实现可能是使用 RequestFactory 设置一个 CRUD 接口。这样的设计使用 GWT-RPC 是非常错误的。
我建议您在做出决定之前多阅读这两个框架。但是, RequestFactory 似乎是您问题的最佳解决方案。
如果您只有一个用例,那么实现您自己的 servlet 可能就可以了。在您的 GWT 代码中使用 RequestBuilder 从 servlet 请求数据。访问数据库,将 ResultSet 转换为 JSON,在客户端将响应转换回 JavaScriptObject,就完成了。这将为您节省设置 RequestFactory 和所有实体、代理和定位器的工作。
如果您在以数据为中心的应用程序中应用程序,并且您应该在服务器端使用 JPA,则 RequestFactory 优于 JSON。(例如 Hibernate、Spring 等)。更重要的是,这取决于您要传输的数据类型。
我会说一次传输所有数据可能不是一个正确的主意。因为序列化和反序列化需要大量时间。浏览器也可能挂起(根据我的经验)。用户必须等到所有数据都加载完毕。
相反,您可以以块方式将数据传输到客户端,因此当用户编辑第一部分时,可以在后台加载第二部分。