У меня есть окно поиска, которое, когда пользователь будет записывать поисковый запрос в реальном времени в текстовый файл. Как вы можете себе представить, это может вызвать много записей, если кто-то пропустит слово.clear setTimeout function onkeypress
Я хотел бы отложить запрос на отправку сообщения 1 секунда между нажатиями клавиш, и если пользователь начнет вводить снова в течение 1 секунды, чтобы очистить таймаут и начать заново.
searchBox.keyup(function (e) {
var logTimer = setTimeout(function() {
searchQuery = searchBox.val();
$.post("/submit/search/", { query: searchQuery });
}, 1000);
logTimer();
clearTimeout(logTimer);
});
Посмотрите на дроссель или deboun ce library .... https://github.com/cowboy/jquery-throttle-debounce – epascarello
FYI Думаю, вы перепутали имена переменных: 'logTimer' и' emailTimer' – epascarello