解析する必要のある巨大な文字列を連結しないでください。実際の要素を作成して、次の要素を選択してください。
var options = $.map(data.modelTypes, function (item) {
return $('<option>', { text: item.type })[0];
});
$("#drowdown").empty().append(options);
注:map
メソッドをとして使用していた場合は、関数で値を返す必要があります。そうすると、メソッドeach
から返された値の配列が取得されます。map
編集:
一部のテストでは、jQueryを使用して要素をループおよび作成する代わりに、よりプレーンなJavascriptを使用すると、2倍の速度になることが示されています。
var options = [];
for (var i =0; i < data.modelTypes.length; i++) {
var o = document.createElement('OPTION');
o.text = data.modelTypes[i].type;
options.push(o);
}
$("#drowdown").empty().append(options);
Firefoxの私のコンピューターでは、これにより約1秒で1000000のオプション要素が追加されます。
とにかく、非常に多くのオプションがある場合は、おそらくUIを再考する必要があります...