私は、都市リストと州の依存関係の詳細を含むこのjavascriptオブジェクトを持っています。
var cityList = {
'1' : ['CITY_CODE_A','City A', '2','11','2'],
'2' : ['CITY_CODE_B','City B','','11',''],
'3' : ['CITY_CODE_C','City C', '','11','']
};
var stateList = {
'11' : ['STATE_CODE_A', 'State A'],
'12' : ['STATE_CODE_B', 'State B'],
'13' : ['STATE_CODE_C', 'State C'],
'14' : ['STATE_CODE_D', 'State D']
};
選択された状態に応じて、キーが関数に渡され、キーが都市リストの値 (配列のインデックス 3 要素) と一致し、見つかった場合は のオプション タグが形成されます<select>
。コードは次のとおりです。
$.each(cityList, function(key, value) {
if(selectedVal == value[3]){
$("select[id='"+selectid+"']").append('<option value="'+value[0]+'" code="'+key+'">' +value[1] + '</option>');
}
});
この都市リストが 50K レコード (2 MB) になると、州に 50K の都市が含まれます (パフォーマンス テスト)。上記のコードは、コードをローカルで実行している Windows 7 マシンで都市リストのドロップダウンを読み込むのに 2 分かかります。for
ネイティブ/ループで試しましin
たが、満足のいく結果が得られませんでした。
時間を短縮する方法についてのアイデアはありますか? JS オブジェクト構造を変更する必要がありますか?