我正在使用Select2 v4.0.0,并且有一个包含约7k项的列表。当用户单击选择时,将花费几秒钟的时间来打开列表。
作为一种解决方案,我尝试对ajax使用分页,并且效果很好。有关当前使用的代码,请参见下文
$($el).select2({
ajax: {
url: _url,
type: 'POST',
dataType: 'json',
delay: 500,
data: function(params) {
return {
term: params.term || '',
page: params.page || 1
}
},
processResults: function(data, params) {
var page = params.page || 1;
return {
results: data.results,
pagination: {
more:(page * 10) <= data.total_count
}
};
}
}
});
这里的情况是用户可以添加多达“新行”,并且每行都具有select2字段。因此,大量的ajax请求被发送到服务器(每次用户搜索时,以及当选中该项目时,另一个请求被发送以获取其他一些相关数据的请求),服务器也停止响应,从而导致错误,
net :: ERR_EMPTY_RESPONSE
所以我被迫停止使用AJAX。
我一直在寻找这样的解决方案:http://embed.plnkr.co/sUt9zi(我无法使用它,因为它使用的是select2 v3.4.5)。
是否有类似的解决方案可以对从局部变量加载的数据进行分页?或任何解决方法可以更快地打开列表。
任何帮助将不胜感激