在GWT中将大型阵列从服务器传输到客户端

时间:2011-08-22 02:43:39

标签: java javascript json gwt data-transfer

我正在尝试使用异步RPC调用将大型二维数组(17955 X 3)从我的服务器传输到客户端。这需要很长一段时间,这是特别糟糕的,因为需要数据才能初始化应用程序。我已经读过使用JSON对象可能会更快,但我不确定如何在Java中进行转换,因为我对语言和GWT很新,我不知道速度差异是否显着。我也读过一些我可以压缩数据的地方,但我只是在一个论坛中读到它,我不确定它是否真的可能,因为我无法在其他地方找到它的信息。有没有办法将大量数据从服务器传输到客户端?谢谢你的时间。

3 个答案:

答案 0 :(得分:0)

关于向GWT添加 JSON 功能,请阅读this article。关于压缩this article解释了使用GWT进行gzipping。

即使使用gzipping可以实现压缩,阵列的大小仍然非常大,这取决于阵列中重复的数据量。如果可能的话,您可能需要考虑在多个RPC调用中逻辑分解数组。

答案 1 :(得分:0)

如果您的应用程序需要如此大量的数据来初始化,我建议您重新访问您的设计。

答案 2 :(得分:0)

正如其他人指出的那样,你应该重新考虑你的设计,因为即使你能够以某种方式解决数据传输速度问题,你也可能会发现其他问题等着你:

  1. 在浏览器中处理大量数据可能会很慢。
  2. 很多数据意味着大量的用尽内存
  3. 你能想到的是:

    对数据进行分区:

    您的用户如何应对大量数据。您的用户可能需要某种用户界面辅助才能使用如此庞大的数据。如果您打算使用分页,制表符或其他方法对数据进行分区以供用户使用,那么为什么不按需加载数据。例如,如果使用分页网格,则可以加载单页记录,或者如果要使用选项卡,则可以加载单个选项卡。类似地,如果您要允许对记录进行过滤,则可以在加载后设置默认过滤器以将数据保持为最小值。

    汇总数据:

    如果您不打算向用户显示每一行,您还可以汇总服务器上的数据。例如,您最初可以显示每组记录的摘要,并让用户在特定组中进行深入分析