我在此代码中遇到Select2组件的问题:
$("#group_select_name").select2({
placeholder: "Select a Group",
allowClear: true,
ajax: {
type: "GET",
url: "../contactGroup",
contentType: "application/json; charset=utf-8",
dataType: 'json',
processResults: function(data) {
return {
results: $.map(data, function(obj) {
console.log("update 2")
return {
id: (obj.id),
text: (obj.name)
};
})
};
},
}
});
一切正常,但当我尝试使用搜索字段搜索某些内容时,该组件会向服务器发出多个不需要的AJAX请求。在浏览器的控制台中,我看到成千上万的“更新2”。
Select的版本是4.0.3
。有什么建议吗?
答案 0 :(得分:3)
这是因为组件请求按下每个键。您可以定义启动请求的延迟,如官方文档中所述:
默认情况下,只要用户,Select2就会触发新的AJAX请求 改变他们的搜索词。您可以设置去抖动的时间限制 使用ajax.delay选项的请求。
$('select').select2({
ajax: {
url: '/example/api',
delay: 250
}
});
<强> [编辑] 强>
您的console.log
位于map
函数内,每次请求后都会对结果中的每个元素执行该操作。