1. Показывать не все подсказки (и отдавать в браузер), а несколько первых. Например, 10.
2. Слать запрос на сервер с небольшой задержкой, примерно 0,3с. То есть пользователь не пишет ничего 0,3с — пора идти за подсказками на сервер.
3. Если пользователь стал дальше вводить, а ответ с сервера ещё не пришёл, абортнуть запрос. Если пользователь снова не вводит ничего 0,3с — снова сходить за подсказками.