Загрузка большого набора данных для раскрывающегося списка с множественной выборкой и фильтрацией на стороне сервера (select2) - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть набор данных с более чем 15 тыс. Записей, и я хочу загрузить его в раскрывающийся список с помощью поиска на стороне сервера и множественного выбора.Для этого я использовал плагин select2, но у меня возникли проблемы с поиском, и есть также проблемы с производительностью.

см. Код, который я использовал, это правильный способ загрузки большого набора данных иесть другие решения?

$('#group_admins').select2({
                ajax: {
                    url: site_url + 'Membership_Groups/load_group_admins',
                },
                placeholder: 'search',
                multiple: true,
                // query with pagination
                query: function (q) {
                    var pageSize,
                            results,
                            that = this;
                    pageSize = 20; // or whatever pagesize
                    results = [];
                    if (q.term && q.term !== '') {
                        // HEADS UP; for the _.filter function i use underscore (actually lo-dash) here
                        results = _.filter(that.data, function (e) {
                            return e.text.toUpperCase().indexOf(q.term.toUpperCase()) >= 0;
                        });
                    } else if (q.term === '') {
                        results = that.data;
                    }
                    q.callback({
                        results: results.slice((q.page - 1) * pageSize, q.page * pageSize),
                        more: results.length >= q.page * pageSize,
                    });
                },
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...