处理GWT ListBox中的大量数据

时间:2012-12-10 13:09:48

标签: gwt listbox gwt-platform

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

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

我可以做些什么来缩短这段时间?

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

我已经完成的事情:

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

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

但是我该如何处理ListBox?

1 个答案:

答案 0 :(得分:13)

选择太多是没有选择的。

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

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

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

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