处理GWT ListBox中的大量数据

Ber*_*ale 2 gwt listbox gwt-platform

当我的Presenter被显示时,我必须进行RPC调用.该调用导致String []具有大量数据.但是这个电话非常慢.完成大约需要1分钟.

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

我该怎么办才能最大限度地缩短这段时间

假设我需要在我的Presenter显示时加载所有内容.

我已经完成的事情:

  • 将我的查询放在视图中(不会影响太多)
  • 服务器读取Txt文件而不是调用DB(最差,然后查看).
  • 使用集合类ArrayList,Vector ...(向量缩短时间减少5%)

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

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

app*_*tup 13

选择太多是别无选择.

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

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

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

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

  • 我会尝试GWTChosen,看起来非常好,谢谢你的提示.另外,使用guava库ImmutableList. (2认同)