Хранение данных
Эту информацию следует хранить в базе данных. Создайте таблицу или две для хранения такого типа информации для каждого пользователя в каждом поле.
Запрос на стороне клиента
Вы можете запросить базу данных со стороны клиента (через AJAX), когда пользователь начинает вводить текст в текстовое поле. В этом случае рекомендуется подождать, пока в поле не будет не менее 3 символов, прежде чем запрашивать предложения у сервера. Это немного уменьшает количество запросов и трафик между клиентом и сервером.
Я использую этот метод для полей с большим количеством возможных автоматических предложений.
Кэширование
Если вы используете этот метод, вы можете оптимизировать процесс, кэшируя ответ в определенных ситуациях.
Предполагая, что запрос запускается только после того, как 3 символа находятся в текстовом поле, вы можете кэшировать весь результат. Любые дополнительные символы, добавленные в текстовое поле, не увеличат количество возвращаемых результатов. Таким образом, вы можете просто продолжать фильтровать кешированные результаты. Однако, если пользователь удаляет символ, вы можете обновить кеш, чтобы убедиться, что у вас есть наиболее подходящие совпадения с автоматическим предложением.
Предварительная загрузка на стороне сервера
Соберите все эти данные на стороне сервера и отправьте их вместе с запросом страницы. (Вы можете отправить его как массив javascript где-нибудь, на который можно сослаться в событии onchange
текстового поля. Таким образом, вам не нужно делать какие-либо вызовы AJAX.
Похоже, это лучше для полей, где не будет большого количества возможных совпадений с автоматическим предложением.
person
EndangeredMassa
schedule
05.02.2009