каждое нажатие клавиши автозаполнения будет инициировать удаленный запрос, если источником является URL.что вы можете сделать, чтобы предотвратить это, это «предварительно извлечь» данные (убедитесь, что вы возвращаете JSON-допустимый массив), затем добавьте возвращаемые данные в качестве источника для автозаполнения.таким образом, данные выбираются только один раз, и автозаполнение будет ссылаться на эти данные.
jQuery autocomplete уже имеет возможность фильтрации.вам просто нужен полный список предметов, и он отфильтрует его для вас.
//get all input boxes with class "autocomplete"
$('.autocomplete').each(function(){
//reference input and get it's url
var input = $(this);
var url = input.data('source');
//get list array only ONCE for each input using their specified urls
$.get(url, function(data) {
//when request is received, add autocomplete using the returned data
input.autocomplete({
source: data,
minLength: 1,
select: function(event, ui) {
console.log(ui.item ? "Selected: " + ui.item.value + " aka " + ui.item.id : "Nothing selected, input was " + this.value);
}
});
});
});