Кто-нибудь знает, сколько вариантов может иметь выпадающий список? Это безлимитно? Сколько до того, как снизится производительность?
Более серьезной проблемой может быть тайм-аут, если запрос к базе данных AJAX заполняет список. Таким образом, люди, приземляющиеся здесь, также могут захотеть выполнить поиск по тайм-аутам AJAX, если это их ситуация.






Does anyone know how many options a drop down list can have? Is it unlimited?
Я предполагаю, что теоретически это неограниченно, но, очевидно, не на практике, поскольку в игру вступают ОЗУ компьютера и ограничения конкретного браузера.
How many before performance degrades?
Опять же, это будет зависеть от нескольких факторов, по крайней мере, от конкретного браузера, памяти компьютера и вычислительной мощности.
Обновлено: По опыту у меня были раскрывающиеся списки с тысячами вариантов. Это было не идеально, потому что кто захочет просмотреть все это? Вот почему автозаполнение того или иного типа более желательно по многим причинам, особенно для конечного пользователя.
Я использовал около 500 в списке без заметного влияния на производительность, если это помогает!
ну на мобильном устройстве другое дело
По моему опыту, снижение производительности обычно происходит на стороне пользователя, мое золотое правило (где-то выучено) - семь вариантов, плюс-минус несколько.
В большей степени, связанной с программным обеспечением, возможно, это верхний диапазон целых чисел.
Обновлено: Кстати, это актуально от Этвуд
Обновление: на основе DannyG, протестированного в Ubuntu с Firefox на компьютере с памятью 4 ГБ, ограничение намного превышало 10 тыс. Тегов. Мой текущий Firefox настроен на использование до 3 ГБ, и он достиг 100k опций, но для этого вам придется изменить конфигурацию браузера по умолчанию, я думаю.
Мы решили использовать автозаполнение Ajax в качестве замены во всех случаях, когда было предоставлено более 30 вариантов.
И Firefox, и Chrome ограничены параметрами 10k в Windows 64b с 4 ГБ оперативной памяти в конфигурации по умолчанию.
Протестировано с JSFiddle http://jsfiddle.net/Mare6/
for (var i=0; i<10000; i++) {
var name = "Option "+i;
var sel = document.getElementById("list");
sel.options[sel.options.length] = new Option(name,i);
}<a>Testing Select</a>
<select id = "list"></select>С уважением,
увлекательно, особенно с учетом того, что в документации Mozilla указано «Разрешенное содержимое Ноль или более элементов <option> или <optgroup>». - developer.mozilla.org/en-US/docs/Web/HTML/Element/…
Неправда, у меня есть выбор с 80000 опциями, хром позволяет 30 000 на одной машине и 20 800 на другой, первая машина имеет 8 ГБ ОЗУ, вторая - 4 ГБ, так что это в основном основано на технических характеристиках компьютера.
Теоретически ограничений нет, но некоторые браузеры реализуют ограничения. (Аналогично использованию document.write в бесконечном цикле.)
Но, в конце концов, самое большее, что я когда-либо рекомендовал бы в раскрывающемся списке, - это около 50, просто потому, что никто не хочет делать так много прокрутки. При этом, если они организованы, скажем, в алфавитном порядке, может оказаться целесообразным иметь до 200 элементов в раскрывающемся списке. (Например, в форме регистрации, где вы должны выбрать страну своего рождения.)
Кроме того, когда у вас есть много разных вариантов набора, раскрывающийся список обычно является лучшим вариантом, независимо от того.
Да, максимум для Chrome и Safari - не менее 10000 элементов для элементов select.
Соответствующие строки в исходном коде Chrome можно найти здесь: Определено максимум 10000, Код, который устанавливает ограничение и выводит ошибку в консоль
Судя по моему тестированию, Firefox не имеет практических ограничений.
Я знаю, что этот вопрос довольно старый, но для справки в будущем я использовал выбор с параметрами 30800 и работал довольно хорошо (когда скрипт php не выходит из времени для получения значений)