автозаполнение через ajax - PullRequest
       3

автозаполнение через ajax

0 голосов
/ 07 февраля 2011

Я хочу предложить результаты, используя автозаполнение. Мне нужно отправлять запросы AJAX при каждом нажатии клавиши. Для этого я хочу, чтобы HTTP-соединение оставалось открытым в течение нескольких секунд, и если что-то набрано в течение этого периода, я хочу отправить AJAX в том же соединении. Если за этот период ничего не было напечатано, я хочу закрыть HTTP-соединение.

Справочная информация:

Я уже использую плагин typewatch. Но здесь HTTP-соединения устанавливаются каждый раз, когда я отправляю запрос. Я все еще хочу улучшить скорость. Я прочитал в этой теме http://www.philwhln.com/quoras-technology-examined#the-search-box, что:

Quora использует постоянные соединения. HTTP-соединение устанавливается с сервер, когда вы начинаете вводить поисковый запрос.

Как я могу сделать это с поддержкой нескольких браузеров? Это просто поддерживать?

1 Ответ

0 голосов
/ 07 февраля 2011

Вы не можете.Каждое обращение запрос-ответ является асинхронным, то есть, когда оно отправляется, оно ожидает ответа этого конкретного запроса, а затем обрабатывает его.

Я думаю, что вы хотите, чтобы ваш скрипт не забивал сервер,Для этого существует множество методов, но наиболее распространенным является использование таймера нажатия клавиш.Таймер ожидает указанное количество миллисекунд после того, как пользователь заканчивает ввод, перед отправкой запроса, содержащего значение текстового поля, на сервер.

Если вы используете JQuery, вы можете использовать TypeWatch Плагин для этого.JQuery также удовлетворит ваши кросс-браузерные требования.

Однако , поскольку вы также хотите выполнять автозаполнение, вы также можете использовать плагин JQuery AutoComplete , который такжеимеет встроенный таймер нажатия клавиш, по умолчанию он установлен на 400 миллисекунд.Нажмите OPTIONS TAB на на этой странице , чтобы увидеть все параметры конфигурации, которые вы можете передать в плагин.

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