Почти то же самое, за исключением того, что таймер устанавливается только при выполнении условий:
отаю над функцией автоматического поиска для сайта.
Он использует ajax для запроса API.
В данный момент после ввода 3 символов он будет искать при каждом нажатии клавиши.
Что я хочу это
Случай 1:
Пользователь вводит тест
Выполнен поиск в течение 2 секунд
Пользователь вводит тест
1 второй проход
пользователь нажимает т
Проход 2 секунды
поиск выполняется на тесте
Вопрос 3:
Пользователь вводит тест
1 секунда проходит
пользователь нажимает т
1,5 секунды
пользователь нажимает я
1,5 секунды
пользователь нажимает n
1,5 секунды
пользователь нажимает г
Проход 2 секунды
поиск по выполненному тестированию
так что, как вы можете видеть, действие поиска выполняется только тогда, когда не было нажатий клавиш (или вставок) в течение двух секунд после нажатия клавиши.
моя основная идея заключается в
on keydown Вызов функции, которая устанавливает время ожидания, функция также устанавливает переменную, содержащую последнюю запись в текстовом поле. Когда время ожидания истекает, оно проверяет значение в поле, чтобы увидеть, соответствует ли оно значению в переменной.
Если они совпадают, то не было никаких изменений. Так что делать поиск
Если они ничего не предпринимают, то по истечении этого времени будет следовать тайм-аут от последующего нажатия клавиши.
Это единственный / лучший способ сделать это?