我有一个大选择,约有~1500项。每当我调用此代码时
$('#multi-select').dropdown('set exactly', ['my value']);
设置其值,整个用户界面锁定并滞后。现在我知道这是由于大量下拉(1500项)但我想知道是否有办法保留那么多项目而不会冲洗用户体验。
我在下面举了一个例子。您可以尝试单击该按钮一次,或连续多次单击该按钮以查看浏览器阻塞。
答案 0 :(得分:1)
我查看了代码并对点击进行了分析。在其内部的某处,Semantic会触发很多事件,并且大部分延迟时间都是由module.trigger采取的。代码内部如下所示:
Attachment
我没有看到任何方法来禁用事件处理部分。
答案 1 :(得分:0)
我仔细研究了下拉列表的semantic.js代码,它完全是这样的:https://github.com/Semantic-Org/Semantic-UI/blob/74fea12e1fd548cb870872ba5ed59f5acdcc57ba/dist/components/dropdown.js#L2219:L2295
如果代码很慢或者你可以做任何类型的快捷方式,你可以试一试。
但是,这很难,你可能想要考虑像search这样的alernative。
答案 2 :(得分:0)
我们的解决方案是简单地缓存内容,并仅将选定的选项子集放入下拉菜单中。