@DenAximand

"Живой" поиск js. Как реализовать с помощью асинхронного js?

День добрый, господа.
Есть вот такая задачка. Нужно реализовать "живой" поиск на js. Да, знаю вариантов его реализации в интернете полно, но мне необходим специфический его вариант.
Суть задачи такой: при срабатывании ивента oninput должен запускаться скрипт, который будет ждать повторного срабатывания ивента 1.5 секунды. Если ивент сработал, ждем еще 1.5 сек и т.д. Но если ивент не произошел, то мы получаем данные из строки поиска и отправляем их(как именно, не суть).
<input id="search"> //строка поиска

let target = document.querySelector('#search');
target.oninput = function () {
    let val = this.value.trim();
}

Пришел к мысли, что возможно это нужно реализовывать при помощи асинхронного js кода. Но с ним я еще не работал. Буду рад советам, помощи, возможным решениям.
Заранее благодарен.
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
let target = document.querySelector('#search');
let timerId = null;

target.oninput = function () {
	let inputValue = this.value.trim();
	let lastTime = performance.now();

	if (timerId) {
		clearTimeout(timerId);
	}

	timerId = setTimeout(function() {
		if (performance.now() - lastTime > 1500 && inputValue) {
			console.log('Send', inputValue);
		}
	}, 1500);

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы