Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическая подпорка (как в поисковиках) (https://javascript.ru/forum/dom-window/9857-dinamicheskaya-podporka-kak-v-poiskovikakh.html)

warobushek 08.06.2010 20:59

Динамическая подпорка (как в поисковиках)
 
Здравствуйте! Помогите пожалуйста прийти к наилучшему решению.

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

Я это представляю себе следующим образом:
- в верстке под инпутом делаем скрытый слойХ
- на input вешаем "onKeyPress", в обработчике считываем строку, которая уже введена в поле.
Используем метод load() из jQuery для получения max = N количества подходящих улиц. динамически создаем N блочных элементов и помещаем их в слойХ.

В обработчике "onKeyPress" предумотрим возможность определения нажатия стрелок вверх/вниз. В зависимости от того, нажаты они или нет - выделяем тот или иной блочный элемент в слоеХ.

Gvozd 08.06.2010 21:12

Если грамотно реализовывать, то слишком большой нагрузки на сервер не будет.
Грамотно-не первый взгляд это:
1)хорошая база с правильными индексами.
2)хорошие запросы, запрашивающие только нужную инфу, без лишних плюшек
3)ну и запрашивать инфу только когда это реально надо.
То есть не на onkeypress, а спустя некоторое время после последнего из них
во время быстрого набора пользователю все арвно не нужно автодополнение.
а вот, как задумался, стоит подсказать

warobushek 09.06.2010 07:16

load из jQuery
 
load из jQuery - подходящий выбор для данной задачи?

Gvozd 09.06.2010 10:27

Цитата:

Сообщение от warobushek
load из jQuery - подходящий выбор для данной задачи?

а вы видите какие-то альтернативы?;)
только ответьте на этот вопрос, пожалуйста

вот в этой статье все доступные для JS способы общения с сервером
Самым распространенным, и применяемым является XMLHTTPRequest
load базируется на нем
PS очень рекомендую, прежде чем браться за jQuery, выучить чистый JavaScript

warobushek 09.06.2010 11:49

с load ... .
 
В силу своего опыта встречался пока только с load
Поэтому и спрашиваю

Gvozd 09.06.2010 11:55

Цитата:

Сообщение от warobushek
В силу своего опыта встречался пока только с load

Очень советую сначала полноценно изучить JS
jQuery всего лишь дает вокруг него красивую обертку.
Зная, как работает JS, вы будете понимать, примерно, как работают методы jQuery

почитайте для начала статью
затем, гляньте справку по jQUery, и посмотрите какие разнообразные обертки вокруг AJAX он предоставляет
выбирайте любую, по вкусу и необходимости

Geddar 09.06.2010 11:58

Обычно поисковики выдают запросы других пользователей и в первую очередь ваши собственные. Поэтому актуально думаю добавть таблицу(ы) в которой будут храниться запросы пользователей. Так же туда не стоит пихать длинные запросы, достаточно например из 3х слов и не более. и делать запросы ко всему этому, а не к общей базе поисковика.
Это позволит избежать лишней нагрузки на серв и ускорит сам процесс

warobushek 09.06.2010 12:17

load из jQuery
 
Gvozd
Спасиб за ссылку, почитаю как будет время
Запоминается язык все же лучше на боевых проектах.
Geddar
спасибо за идею

warobushek 13.06.2010 09:53

вроде сделал эту подпорку, но блин запарка:

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

Kolyaj 13.06.2010 09:55

autocomplete="off"


Часовой пояс GMT +3, время: 12:50.