当我的Presenter被显示时,我必须进行RPC调用。该调用导致String []具有大量数据。但是这个电话非常慢。完成大约需要1分钟。
经过一些测试,我发现ListBox.addItem()占用了这个调用的30%以上。这是一个在该Widget上添加String的巨大时间。
我可以做些什么来缩短这段时间?
假设我需要在我的Presenter显示时加载所有内容。
我已经完成的事情:
我注意到GWT设计了一个LightweightCollections来改善客户端集合的使用(这是我的下一步)。
但是我该如何处理ListBox?
答案 0 :(得分:13)
选择太多是没有选择的。
您将无法调整GWT Listbox / ValueListBox以显示如此大量的数据(我猜测1000秒的条目考虑20秒,即1分钟的30%)。 GWT列表框用于选择。您不能指望用户看到1000的值,滚动然后选择。它是用户互动噩梦。
正确的方法是使用Async加载 SuggestBox 来处理如此庞大的数据。使用SuggestBox,您可以根据用户输入键过滤和显示较少的数据作为选择。
如果使用SuggestBox不可行,您必须尝试单元格小部件中的 CellList (它们可能会显示更好的性能) - https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCellWidgets
我不确定但是试试GWTChosen - http://jdramaix.github.com/gwtchosen/