【问题标题】:Transferring large arrays from server to client in GWT在 GWT 中将大型数组从服务器传输到客户端
【发布时间】:2011-10-31 20:15:12
【问题描述】:
我正在尝试使用异步 RPC 调用将大型二维数组 (17955 X 3) 从我的服务器传输到客户端。这需要很长时间,这尤其糟糕,因为需要数据来初始化应用程序。我读过使用 JSON 对象可能会更快,但我不确定如何在 Java 中进行转换,因为我对语言和 GWT 还很陌生,而且我不知道速度差异是否很大.我还在某个地方读到了可以压缩数据的地方,但我只在论坛上读过,我不确定它是否真的可行,因为我在其他地方找不到相关信息。有没有办法将大量数据从服务器传输到客户端?感谢您的宝贵时间。
【问题讨论】:
标签:
java
javascript
json
gwt
data-transfer
【解决方案1】:
阅读this article 了解向 GWT 添加 JSON 功能。关于压缩this article 解释了使用 GWT 进行 gzipping。
即使使用 gzipping 可以实现压缩,数组的大小仍然非常大,这取决于数组中重复的数据量。如果可能,您可能需要考虑在多个 RPC 调用中在逻辑上分解数组。
【解决方案2】:
如果您的应用程序需要如此大量的数据来初始化,我建议您重新审视您的设计。
【解决方案3】:
正如其他人指出的那样,您应该重新考虑您的设计,因为即使您能够以某种方式解决数据传输速度问题,您也可能会发现其他问题在等着您:
- 在浏览器中处理大量数据可能会很慢。
- 大量数据意味着大量已用完的内存
你能想到的是:
对数据进行分区:
您的用户将如何处理大量数据。您的用户可能需要某种用户界面帮助才能处理如此庞大的数据。如果您打算使用分页、标签或其他方式对数据进行分区以供用户使用,为什么不按需加载数据。例如,如果您使用分页网格,则可以加载单页记录,或者如果要使用选项卡,则可以加载单个选项卡的记录。同样,如果您要允许对记录进行过滤,您可以在加载后设置一个默认过滤器以将数据保持在最小值。
总结数据:
如果您不打算向用户显示每一行,您还可以汇总服务器上的数据。例如,您最初可以显示每组记录的摘要,并让用户在特定组中向下钻取