我正在构建一个应用程序,它在将数据发送回客户端之前检索数据并将其解析为二维数组对象。然后,应用程序使用数据在HTML5画布上创建图像。该数组包含数千个条目,当我使用GWT-RPC构建应用程序时,它工作正常,但将数组传输到客户端花费的时间太长(几分钟)。
我在搜索解决方案时发现了这个问题:http://code.google.com/p/google-web-toolkit/issues/detail?id=860
最后的回复来自几个月之前,但似乎没有一个确定的答案来解决将大型数组从服务器传递到客户端的最佳方法。由于deRPC被弃用(我还没有真正尝试使用它),使用requestfactory是唯一的选择吗?似乎requestFactory应该用于访问数据库,而不是用于执行计算和返回大的结果,我还没有找到一个示例,其中请求进行计算并返回结果。我应该在当前的实现中创建一个JSON对象而不是一个数组并保留RPC,或者在requestFactory中我是否遗漏了一些内容?
答案 0 :(得分:4)
您链接的问题是客户端上的反序列化速度慢,而不是数据传输速度。您应首先使用Firebug或类似工具测量传输速度,然后从RPC调用的总时间中减去此时间,以找出反序列化期间花费的时间。粗略地说,分手就是这样:
总RPC时间=服务器上花费的时间+网络进出时间+ 反序列化时
首先应该找出哪个部分是真正的瓶颈,如果结果是数据传输速度,你可能需要重新考虑你的设计。请参阅my answer相关问题。
修改强>
IMO,在你计算出上述时间分解之前,你应该抛开JSON或其他方法是否适合你的问题