谷歌的Ray Ryan做了一个关于构建你的GWT应用程序的最佳实践的演讲,在那里他谈到了使用命令模式.发送碰巧通过RPC的异步命令是您可能想要的.一旦发送命令而不是RPC,就可以很容易地批处理它们.
有关为您实现此模式的库,请参阅gwt-dispatch.我刚刚开始使用它,所以我不知道它是否自动批处理,但它是所有开源的许可许可证,所以你可以修复它,如果它没有.
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)