Динамическое получение списка раскрывающегося меню с сервера OpenCpu

Мне нужно реализовать раскрывающееся меню на моей HTML-странице, которая содержит более 2000 названий фирм. Встраивание такого огромного списка в html-страницу сделает ее огромной и медленной для загрузки. Поэтому я хотел знать, есть ли интерактивный механизм в OpenCPU. /RApache, чтобы получить то же самое в интерактивном режиме. Например, если пользователь вводит A, он должен отображать все названия компаний, начинающиеся с буквы "A"...


person user1783870    schedule 28.11.2012    source источник


Ответы (3)


Из HTML-страницы единственный способ получить данные с сервера в интерактивном режиме без перезагрузки страницы — использовать AJAX< /а>. И вы могли бы создать массив, содержащий все извлеченные значения, чтобы вам не приходилось повторно извлекать имена, которые уже были получены.

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

ОБНОВЛЕНИЕ

Кроме того, вы действительно тестировали страницу с 2000 элементами в раскрывающемся списке? Вы знаете, что это будет медленно? Если бы каждый элемент состоял из 40 символов, это было бы 80 КБ текста. Браузер может обработать 80 КБ всего за миллисекунды. Проблема, как мне кажется, не во времени загрузки, а скорее в том, что ваши пользователи вынуждены прокручивать список с 2000 записями.

ОБНОВЛЕНИЕ 2

Я только что сделал открытый поиск в Google «как создать раскрывающийся список ajax с php». Вот пример, похожий на ваш. Основные понятия раскрыты. Хотя вы бы инициировали вызов AJAX на основе события onkeyup в текстовом поле.

person jwatts1980    schedule 28.11.2012
comment
ajax не единственный способ, но это если вы хотите полной совместимости - person ncubica; 28.11.2012

Вам нужен виджет автозаполнения с использованием jquery:

http://jqueryui.com/autocomplete/

И если вы хотите сделать это без javascript, вы можете сделать это с html5, конечно, с ограничением совместимости.

http://css-tricks.com/relevant-dropdowns-polyfill-for-datalist/

person ncubica    schedule 28.11.2012
comment
спасибо, ребята, я не пробовал 2000 названий компаний, но предположил, что они будут загружаться медленно, попробую функцию автозаполнения. работает ли это только для списка однословных тегов или также многословных фраз. Названия моих фирм будут состоять из нескольких слов, таких как Berkshire Hathaway, Tata Iron and Steel Co и т. д. - person user1783870; 29.11.2012
comment
Автозаполнение зависит от запроса в вашем sql, вот пример того, как реализовать в php myslq, я думаю, вы используете другую технологию, но она может работать на вас af-design.com/blog/2010/05/12/ пометка ответ как правильный, если это работает или помогает вам :) - person ncubica; 29.11.2012

Я столкнулся с аналогичной проблемой в веб-приложении на основе R, которое я разработал. Мне нужно было предложить пользователю список выбора, основанный на 12 000 генных символов, и я хотел, чтобы они ввели частичные символы. В итоге я использовал Select2, основанный на JQuery. В конечном итоге вы используете ajax-вызов с веб-страницы обратно в функцию R. В моем случае у меня была на стороне сервера функция, которая получала символы по мере ввода пользователем и создавала частичный список (в формате JSON) для возврата. Я потребовал, чтобы пользователь ввел как минимум два символа, чтобы сделать список меньше. Это хорошо сработало для моего приложения.

person P C Marks    schedule 15.08.2013