Делаю живой поиск. С помощью js обращаюсь к backend, оттуда к стороннему api серверу. Проблема в том, что этот сервер работает медленно и, если быстро набрать какой-нибудь запрос (например "Москва"), то на сервер уходит много мелких запросов ("М", "Мо", "Мос" и тд). А обратно, всвязи с непредсказуемостью api сервера и асинхронность запросов ответы могут прийти уже не по порядку, вследствие чего результаты поиска скачут.
Вот думаю - как лучше реализовать поиск так, чтобы если было послано несколько запросов, хотя требуется один ответ, то выдавался бы результаты последнего запроса.
В мыслях сделать задержку перед отправкой любого запроса (например пол секунды), либо сохранение в сессии предыдущего запроса. Какие еще идеи приходят на ум?
Зачастую при вводе текста идет анализ, если идет ввод с ~постоянной скоростью печати ничего не делается. Если задержка до слндующего введенного символа превышает предыдущие в N раз - выполняется обработка запроса.
Как красиво реализовать живой поиск?
Можно еще немного обмануть пользователей анимацией всплывания уточненных ответов вверх по списку.