У меня есть приложение, разработанное с использованием чистого JSP и сервлета. На одной из моих страниц JSP у меня есть поле, где оно должно быть автоматически завершено, когда пользователь начнет вводить текст. Для этой цели я использовал JQuery Auto Complete (https://jqueryui.com/autocomplete/).JQuery Autocomplete с большим количеством данных
Что я делаю, я загружаю данные из своей базы данных с помощью сервлета и передаю эти данные в JSP как Bean
. В моем JSP я использую JSTL внутри JavaScript для подачи поля автозаполнения.
Ниже приведен код
<script>
$(function() {
var availableTags=[] ;
<c:forEach var="NamesList" items="${requestScope['NamesList']}">
availableTags.push("${NamesList.Name}");
</c:forEach>
$("#addTxt").autocomplete({
source: availableTags
});
$("#addTxt").autocomplete("option", "appendTo", ".form-horizontal");
});
</script>
<input id="addNameTxt" name="nameTxt" class="form-control input-md" >
Но вот лучшая часть. Этот список содержит 22 500 элементов. Некоторые из них - длинные имена, которые могут содержать более 50/60 слов. Теперь проблема в том, что, хотя для загрузки страницы не требуется много времени, «иногда» она застревает, когда начинается автозапуск. Я предполагаю, что он ищет множество элементов и выходит из памяти или что-то в этом роде.
Я также заметил поведение ниже, которое может вызвать это отставание. Представьте, что у меня есть такие тексты, как ниже.
Cat/Bat/Dog/Space ship/FrontLine
Cat
Bat
Space Ship
Если я типа «Летучая мышь», мое ожидание, чтобы найти текст начиная с «Летучая мышь», а не тексты, которые могут содержать «Летучая мышь» где-то в середине. Поскольку этот вид поиска занимает много времени, я думаю, что он тоже получает лагги, когда есть 22 500 записей. Во всяком случае, это просто примечание.
Итак, как я могу исправить эту проблему и сделать автоматическое завершение быстро?
использование некоторых закодировать ему может помочь вашей проблеме – Raghavendra
Не заставляйте автозаполнение просматривать весь список, используйте сценарий ответа сервера с отфильтрованными элементами с помощью запроса GET. Что касается второго вопроса: поведение поиска настраивается. – dfsq
@raghavendra: извините? – Dongle