Я использую Select2 v4.0.0 и имею список из более чем 7000 элементов. Когда пользователь нажимает кнопку выбора, для открытия списка требуется несколько секунд.
В качестве решения я попытался использовать разбиение на страницы с помощью 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 (каждый раз, когда пользователь выполняет поиск, а также при выборе элемента, отправляется другой запрос ajax для получения некоторых других связанных данных), и сервер перестает отвечать, что приводит к ошибке,
сеть::ERR_EMPTY_RESPONSE
Поэтому я был вынужден прекратить использование AJAX.
Я искал решение, подобное этому: http://embed.plnkr.co/sUt9zi (я не могу заставить его работать, потому что он использует select2 v3.4.5).
Существуют ли какие-либо аналогичные решения, чтобы сделать результат выгруженным для данных, загруженных из локальной переменной? Или любой обходной путь, чтобы открыть список быстрее.
Любая помощь приветствуется