Предложение по управлению «большим» выбором HTML

#javascript #jquery #html #ajax #select

#javascript #jquery #HTML #ajax #выберите

Вопрос:

Я создал простое веб-приложение, используя AJAX и jQuery. У меня есть форма с серией элементов, вставленных в выбор, которые фильтруются по имени клиента. Я обновляю данные выбора с помощью jQuery при изменении клиента. Моя проблема в том, что, поскольку элементов много, около 20 000 для каждого клиента, когда я выполняю обновление, часто появляется предупреждающее сообщение javascript о том, что скрипт библиотеки jquery может быть занят или перестал работать. Итак, я ищу какое-нибудь предложение по управлению этими большими данными.

ОТРЕДАКТИРУЙТЕ некоторый код, если это может быть полезно

 function cstm_itm(id_for, id_art, tip){

    fade( $('#' id_art) , 0 ,function(){});

	var dati= 'for=' $('#' id_for).val() 'amp;tip=' tip;

    $.ajax({
            type:'POST',
            url: 'cstm_itm_upd.php',
            data: dati, 
            beforeSend: function (http) {
                http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                },
            success: function(response){

                    fade( $('#' id_art), 0, 
						function(){
 							$('#' id_art).html(response);
							$('#' id_art).change();
							fade( $('#' id_art) , 1 , 
								function(){}
								);
							}
						);
                }
    });
}  
 <select id="n_art_d_s" class="field" tabindex="-1"
	onchange=" $('#n_art_d').val( $('#n_art_d_s').children(':selected').text() );
               $('#n_art_d_t').val( $('#n_art_d_s').children(':selected').text() );
               $('#n_art').val( this.value );
               $('#n_art_c_d_s').val($('#n_art_d_s').val());
               if($('#tmp_sta').val()==0) $('#n_art_c_d_s').change();
             " 
	onfocus=" $('#tmp_sta').val(0);" 

	style="width:25px; margin-left: .3em;  background-color: #edf7ff; " >
<option value="" selected=""></option>
<option value="123" title="Desc 1">Item 1</option>
<option value="456" title="Desc 2">Item 2</option>
...
</select>  

РЕДАКТИРОВАТЬ-ЗАКРЫТЬ Я последовал предложению @2182349 и нашел эти примеры, на которых строится мое решение.

Комментарии:

1. Как элемент select, содержащий 20 000 опций, может быть полезен или использоваться кем-либо?

2. Согласен с @1252748 — Если вам нужно одновременно отображать 20 000 параметров, возможно, простой элемент выбора — это не тот пользовательский интерфейс, который вам нужен. Или, возможно, вам следует изучить способы разделения этих параметров или отображать только подмножество в любом заданном выборе. Это кажется слишком большим.

3. Лучшее решение — установить ограничение на количество элементов, которые можно загружать без проблем с производительностью. Если есть больше записей, превышающих лимит, используйте какую-либо навигацию, чтобы получить следующий фрагмент данных.

4. Используйте автозаполнение, чтобы позволить пользователям выбирать элементы. jqueryui.com/autocomplete

5. Используя jQuery и выполняя JavaScript со встроенными обработчиками событий???