Bootstrap-multiselect 有大量选项时速度很慢

Bootstrap-multiselect is very slow with a large pool of options

在我的应用程序中,我要求客户填写一个简短的表格,其中一个字段要求他们 select 3 个他们最喜欢的城市(或他们去过的城市)。

我可供选择的城市列表非常大(3000 个城市),我已经select使用 bootstrap-multiselect 进行搜索。然而 bootstrap-multiselect 有这么多选项时相当慢。

我最大的抱怨是页面加载时间。下面是一个有30个选项的demo,等它加载了,然后运行它,你会发现它超级快。

http://www.bootply.com/07KLihND2q

现在,下面的演示有 3K 个选项,请等待它加载并 运行。 multi-select 至少需要 3 秒才能获得所需的形式!

http://www.bootply.com/wK8zFCjB2D

有没有办法加快速度and/or用另一个满足我需要的组件替换 bootstap-multiselect?

我正在寻找可以让用户快速找到他们喜欢的城市(例如通过文本搜索)、紧凑(可以放入表格而不是打开新的表格)的东西 window ) 并将用户限制为我拥有的 3K 选项之一。能够使用 js-populate 从 JSON 填充元素是一个很大的好处。

谢谢!

我们遇到了完全相同的问题,但真的很想保留该组件,因为它非常方便。

我们的解决方案是渲染没有选项的组件,然后使用 setTimeout 加载选项在页面渲染后。这阻止了渲染选项占据整个页面。

它实际上并没有更快,但对用户来说似乎更快。当您在后台呈现选项时,他们可以开始阅读页面并了解发生了什么。

我会说该组件不适合如此庞大的选项列表,也不是最好的用户体验。你最好使用像 Typeahead https://twitter.github.io/typeahead.js/examples/

这样的东西

虽然显然不是每个人都可以选择,但我们 运行 陷入了同样的境地,并选择摆脱 Bootstrap 的解决方案,转而采用 React Virtualized Select。它可以很好地处理庞大的列表。