如何分组gwt-rpc调用?

Ale*_*oor 7 ajax gwt dwr gwt-rpc

使用DWR,可以将多个服务调用组合到一个HTTP请求中:
dwr批处理功能

此功能对于减少ajax应用程序的延迟非常有用.有没有办法用GWT/GWT-RPC做类似的事情?
谢谢你的帮助

Ste*_*ong 8

谷歌的Ray Ryan做了一个关于构建你的GWT应用程序的最佳实践的演讲,在那里他谈到了使用命令模式.发送碰巧通过RPC的异步命令是您可能想要的.一旦发送命令而不是RPC,就可以很容易地批处理它们.

有关为您实现此模式的库,请参阅gwt-dispatch.我刚刚开始使用它,所以我不知道它是否自动批处理,但它是所有开源的许可许可证,所以你可以修复它,如果它没有.


dma*_*oni 1

GWT 不提供用于批量处理多个任意 RPC 的一步式解决方案。但是,请记住,GWT 的自动序列化使得编写每个 RPC 方法的串行版本和批处理版本变得非常容易。例如,假设您定义了此 RPC:

FooResponse callFoo(FooRequest request);
Run Code Online (Sandbox Code Playgroud)

自己编写同一个 RPC 的“批量”版本就是这么简单:

ArrayList<FooResponse> batchCallFoo(ArrayList<FooRequest> requests) {
  ArrayList<FooResponse> responses = new ArrayList<FooResponse>();
  for (FooRequest request : requests) {
    responses.add(callFoo(request));
  }
}
Run Code Online (Sandbox Code Playgroud)