2011-03-16 36 views
0

将3000个值加载到dijit.form.select控件需要更长的时间。即使有500个值,浏览器也会被挂起。如何克服这个问题?dijit.form.select下拉菜单很慢

任何援助将非常感激。

谢谢, Karthihck k。

+0

哪个Dojo版本?哪个浏览器?你如何填补选择?你如何生成选择? – mrtom 2011-03-16 20:02:08

回答

1

加载3,000的任何东西总是会变得很慢。

虽然有扭曲的方法来克服这个限制,但它可能不值得你的用户肯定是而不是要滚动通过3000项选择一个!

我建议你将这个下拉列表分成两个(或三个)级别,每个级别的选择不超过20-30个。在我自己的一个项目中,有数千个列表项目,我不得不与四个级别,否则性能会变得糟糕透顶。

如果您只有一个长列表可以使用,请考虑将其按起始字母拆分为26个组,如电话列表。至少你每组只有100-200。

现在,如果你真的要加载这么长的名单,考虑不使用dijit.form.Select因为它只是为<select>标签的简单包装。您实际上一次插入一个<option>标签,导致性能下降。你有两个选择:

  1. 创建的<option>标签列表中自己脱线,然后插入<select>元素一气呵成。
  2. 改为考虑dijit.form.FilteringSelect

现在,我绝对不认为支持上述做法。你已被警告!

+0

IBM Rational ClearQuest使用非常奇怪的分页选择小部件。这不是很好 – Marcelo 2011-03-17 03:40:24