2

当我的 Presenter 被发现时,我必须进行 RPC 调用。该调用导致 String[] 包含大量数据。但是这个调用非常非常慢。大约需要 1 分钟才能完成。

经过一些测试,我发现 ListBox.addItem() 占据了这个调用的 30% 以上。在那个 Widget 上添加 String 是一个巨大的时间。

我能做些什么来减少这段时间?

假设我的演示者显示时我需要加载所有内容。

我已经做过的事情:

  • 将我的查询放在视图中(影响不大)
  • 服务器读取一个 Txt 文件而不是调用 DB(最差然后是 View)。
  • 使用 Collections 类 ArrayList,Vector...(Vector 减少时间 5%)

我注意到 GWT 设计了一个LightweightCollections来改进客户端对集合的使用(这是我的下一步)。

但是我能对 ListBox 做些什么呢?

4

1 回答 1

13

选择太多是没有选择的。

您将无法调整 GWT Listbox/ValueListBox 以显示如此大量的数据(我猜测 1000 中的条目考虑 20 秒,即 1 分钟的 30%)。GWT Listbox 用于选择。您不能期望用户看到 1000 的值,滚动然后选择。它是用户交互的噩梦

  1. 对于如此庞大的数据,正确的方法是使用异步加载的SuggestBox 。使用 SuggestBox,您可以根据用户输入键过滤和显示较少的数据作为选择。

  2. 如果使用 SuggestBox 不可行,您必须尝试CellList中的 Cell 小部件(它们可能会显示更好的性能) - https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCellWidgets

  3. 我不确定,但试试 GWTchosen - http://jdramaix.github.com/gwtchosen/

于 2012-12-10T14:27:09.190 回答