Как сделать панель поиска, которая будет каждый раз, когда пользователь вводит что-либо, sh? - PullRequest
0 голосов
/ 26 апреля 2020

Итак, я хочу создать поле ввода, которое будет обновлять sh каждый раз, когда пользователь вводит что-то, без необходимости нажимать кнопку или вводить.

Я уже знаю о событии oninput, как это :

<input type='text' oninput='refresh'>

И в моем сценарии. js:

function refresh()
{
    console.log('refreshed!');
}

Проблема в том, что это вызывает событие каждый раз, когда я просто пишу или удаляю одну букву. И так как мне придется делать SQL запросов, чтобы обновить sh, я не думаю, что очень эффективно делать запросы для каждого изменения.

Так что моя идея была:

  1. , чтобы найти способ запускать событие oninput каждую 1 секунду, но это будет несколько замедленным;
  2. Я не знаю, существует ли это, но только для запуска события, когда пользователь перестает печатать.

Итак, вы знаете, каким образом я мог бы улучшить свою панель поиска?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

используя onFocus, Onblur, Onchange, вы можете эффективно его построить.

var myVar;

In OnFocus - myVar = setInterval (MyFunction, 1000); // вызывает для каждого 1 se c.

function MyFunction () {if (dataChanged) <> и make dataChanged = false}

In Onblur - clearInterval (myVar); // Чтобы один раз остановить выход пользователя из текстового ввода

Чтобы сделать его эффективным в методе Onchange, установите флаг (dataChanged) при каждом вводе пользователем и сбросьте флаг в MyFunction в onFocus после вызова сервера. чтобы избежать ненужных звонков

0 голосов
/ 26 апреля 2020

Я использую функцию debounce от loda sh для этой цели. Вызывает функцию, когда пользователь перестает печатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...