Select2 нумерация страниц с локальными данными - PullRequest
2 голосов
/ 02 июня 2019

Я использую 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 отправляется на сервер (каждый раз, когда пользователь выполняет поиск, а также когда элемент выбирается, другой запрос ajax отправляется для получения других связанных данных), и сервер перестает отвечать, что приводит к ошибке,

Net :: ERR_EMPTY_RESPONSE

Так что я был вынужден прекратить использовать AJAX.

Я искал решение, как здесь: http://embed.plnkr.co/sUt9zi (я не могу заставить его работать, потому что он использует select2 v3.4.5).

Существуют ли аналогичные решения, позволяющие сделать результат постраничным для данных, загружаемых из локальной переменной? Или любой обходной путь, чтобы быстрее открыть список.

Любая помощь будет высоко ценится

...