在 GWT 列表框中处理大量数据



当我的演示者被显示时,我必须执行 RPC 调用。该调用将生成包含大量数据的 String[]。但是这个电话非常非常慢。大约需要1分钟才能完成。

经过一些测试,我发现ListBox.addItem()占据了这个调用的30%以上。这是在该小部件上添加字符串的重要时间。

我该怎么做才能最大限度地减少这段时间?

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

我已经做过的事情:

  • 将我的查询放在视图中(影响不大)
  • 服务器读取 Txt 文件而不是调用 DB(最差的是 View)。
  • 使用集合类数组列表,矢量...(矢量时间缩短 5%)

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

但是我能对列表框做什么呢?

太多的选择是没有选择的。

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新