В настоящее время у меня есть Select2 в моем приложении, и ранее были реализованы вызовы ajax в базе данных, чтобы получить меньшее подмножество на основе поискового запроса, введенного пользователем.Выбирайте поиск по списку очень большого набора данных
Тем не менее, пользователи хотят иметь возможность щелкнуть стрелку назад в браузере и снова запустить запрос (что-то, что в настоящее время не происходит с Select2). Я смог реализовать это, вытащив весь набор данных (более 18 000 элементов) и вызвав select2.
Проблема в том, что Select2 в основном делает foreach в foreach при выполнении поиска (элемент foreach в наборе данных, просматривает каждую строку и получает индекс запроса), который, как я понимаю, в основном разбивает строку на массив символов и каждый отдельный символ, чтобы узнать, найдена ли комбинация). Поэтому каждый раз, когда кто-то вводит персонажа, мы просматриваем более 18 000 операций, хотя большинство элементов исключаются как опции.
Есть ли способ сделать Select2 фактически устранить варианты, которые не совпадают (создать и привязать к массиву temp или что-то в этом роде) или выполнить двоичный поиск вместо линейного поиска? Если нет, есть ли альтернативы Select2, которые DO реализуют бинарный поиск вместо линейного поиска, или мне нужно создать свой собственный jQuery-плагин для этого?