【发布时间】:2019-07-16 05:22:27
【问题描述】:
我正在使用 Select2 来填充下拉列表。 Select2 如果底层选择具有相当数量的项目,则在打开其下拉菜单时会很慢。我的下拉列表中有超过 10.000 多个元素。
这是我的代码:
$.ajax({
url: "/Companies/GetCompanies",
method: "get",
success: function (data) {
if (data != null) {
var newWorkPlaceId = $("#newWorkPlaceId");
newWorkPlaceId.empty();
newWorkPlaceId.append("<option value=''> -- Choose-- </option>");
$.each(data, function (index, item) {
newWorkPlaceId.append(
$('<option>', {
value: item.id,
text: item.text
}, '</option>'));
});
$("#newWorkPlaceId").select2({
placeholder: {
id: "",
placeholder: " -- Choose--"
},
allowClear: true
});
}
clearconsole();
}
});
有没有办法让 Select2 小部件(或其他可搜索的 dropdown)响应更快?
注意:我使用的是 ASP.NET CORE
【问题讨论】:
-
在一个选择元素中拥有 10k+ 个选项绝不是一个好主意:这将是糟糕的 UX 体验,因为 (1) 用户必须滚动浏览的选项数量以及 (2) 10k+ DOM 节点渲染会降低浏览器的速度。您应该考虑的是一个预先输入的解决方案,即在用户输入时建议选项。这样,您始终只显示可能选项的有限子集。
标签: javascript jquery jquery-select2