我在一个简单的 html 程序中使用 Jquery select2。当我单击它时,下拉菜单显示较晚。打开需要将近 6 秒。我有 2000 个列表项。所以请帮我解决它。提前致谢!!
问问题
2891 次
1 回答
0
我有一个类似的问题,在我们的场景中,有一个可搜索的列表是可以接受的,所以对于我们知道大小可能很大的列表,我们使用 ajax 功能来动态加载数据。
$("#companySearchBox").select2({
minimumInputLength: 1,
allowClear : true,
placeholder: "Search For Company",
formatInputTooShort: function (input, min) { return "Start typing to search"; },
ajax: {
url: (crmServiceUrl + '/GetFilteredCompanies'),
dataType: 'json',
data: function (term) {
return {
term: term
};
},
type: "POST",
results: self.ConvertData
},
initSelection: function (element, callback) {
var data = [];
var selected = element.val().split("|", 2);
if (selected.length) {
//element.val(selected[0]);
callback({ id: selected[0], text: selected[1] });
}
},
valueIdOnly : false
});
this.ConvertData = function (data) {
var returnData = { results: [] }
if (data.d.DataObject) {
$.each(data.d.DataObject, function (key, value) {
returnData.results.push({ id: value.Identity, text: value.Description });
});
}
return returnData;
}
ConvertData 函数只知道如何从我们的自定义数据对象映射到选择项。
这可能不适合您的需求,但这是我真正可以针对大量数据进行优化的唯一方法。
于 2013-05-17T10:04:16.070 回答