Отправить запрос на серверы algolia, когда пользователь перестанет печатать - PullRequest
0 голосов
/ 07 апреля 2020

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

, поэтому, когда пользователь вводит символ, он ждет 1 секунду, а если пользователь не вводит какой-либо другой ключ, отправьте запрос на сервер algolia

примерно так:

function onUserKeyUp (){
    clearTimeout('TIMEout');

    TIMEout=setTimeout(function() {
        SendRequestToALGOLIA()
    }, 1000);

}

у Алголии есть API для этого?

1 Ответ

3 голосов
/ 07 апреля 2020

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

При этом, хотя Algolia не рекомендует этого, вы можете создать его с помощью своих клиентов API и setTimeout.

  • Прочитайте пример использования API-клиента, который вы хотите использовать. Например, с помощью API мест Algolia: Пример использования клиента API

    • Оберните код этого примера в функцию, например sendRequestToAlgolia()
  • Определите функцию setAlgoliaTimeout(), которая использует setTimeout и clearTimeout как , задокументированную в этом примере W3Schools , для запуска этой функции sendRequestToAlgolia() после задержки по вашему выбору

  • Следуйте примеру MDN для события keyup , чтобы определить прослушиватель, который запускает ваш метод setAlgoliaTimeout() при получении действительных событий keyup.

...