Я работаю над функцией автоматического поиска для сайта.
Он использует ajax для запроса api.
В момент ввода 3 символов он будет искать при каждом нажатии клавиши.
Я хочу
Case1:
Пользователь вводит tes
Проходит 2 секунды выполненный поиск
Case2:
Пользователь вводит tes
1 секунда
пользователь пресса t
Прошло 2 секунды
поиск выполняется на тестовом сайте
Case3:
Пользователь вводит tes
1 секунда
пользователь пресса t
Проходит 1,5 секунды
пользовательские прессы я
Проходит 1,5 секунды
пользовательские прессы n
Проходит 1,5 секунды
пользователь пресса g
Прошло 2 секунды
поиск в ходе тестирования
чтобы вы могли видеть, действие поиска выполняется только в том случае, если в течение двух секунд после нажатия клавиши не было нажатий клавиш (или пасты ect).
Моя основная идея:
на клавиатуре Вызовите функцию, которая устанавливает тайм-аут, функция также устанавливает переменную, содержащую последнюю запись в текстовом поле. когда истечет время ожидания, он проверяет значение в поле, чтобы узнать, соответствует ли оно переменной в переменной.
Если они совпадают, то никаких изменений не было. Таким образом, поиск
Если они не делают ничего, потому что тайм-аут после последующего нажатия клавиши будет следовать за той же проверкой.
Это единственный/лучший способ сделать это?