dijit.form.select下拉列表非常慢

时间:2011-03-16 14:40:16

标签: select dojo

将3000个值加载到 dijit.form.select 控件需要更长的时间。即使有500个值,浏览器也会被绞死。如何解决这个问题?

非常感谢任何帮助。

谢谢, Karthihck k。

1 个答案:

答案 0 :(得分:1)

将3,000个任何加载到网页中总是会很慢。

虽然有一些方法可以克服这个限制,但对于你的用户来说,它绝对不值得喜欢滚动浏览3,000个项目来选择一个!

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

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

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

  1. 离线创建<option>代码列表,然后一次性插入<select>元素。
  2. 请考虑dijit.form.FilteringSelect
  3. 现在,我绝对不赞成赞同上述做法。你已被警告过了!