У меня есть следующий код, который я хочу использовать для поиска в базе данных, когда пользователь вводит текстовое поле. Приведенный ниже код работает нормально, но кажется немного неэффективным, как будто пользователь печатает очень быстро. Я потенциально делаю гораздо больше поисков, чем необходимо. Поэтому, если пользователь вводит слово «sailing», я ищу слова «sailing», «saili», «sailin» и «sailing».
Я хотел посмотреть, есть ли способ обнаружить какое-то конкретное время между нажатиями клавиш, поэтому ищите, только если пользователь перестанет набирать текст в течение 500 миллисекунд или что-то вроде этого.
Есть ли лучшая практика для чего-то подобного?
$('#searchString').keypress(function(e) {
if (e.keyCode == 13) {
var url = '/Tracker/Search/' + $("#searchString").val();
$.get(url, function(data) {
$('div#results').html(data);
$('#results').show();
});
}
else {
var existingString = $("#searchString").val();
if (existingString.length > 2) {
var url = '/Tracker/Search/' + existingString;
$.get(url, function(data) {
$('div#results').html(data);
$('#results').show();
});
}
}