都市名のリストがあります。JavaScriptを使用して、このリストをhtml選択リストに入力したいと思います。リストには 1000 以上の都市名があります。サーバーリクエストは必要ありません。リストは静的です。
このような大きなリストをjsファイルに含める最良の方法は何ですか? パフォーマンスの問題を考えると、js で大きな配列を宣言すると遅くなると思います。
都市名のリストがあります。JavaScriptを使用して、このリストをhtml選択リストに入力したいと思います。リストには 1000 以上の都市名があります。サーバーリクエストは必要ありません。リストは静的です。
このような大きなリストをjsファイルに含める最良の方法は何ですか? パフォーマンスの問題を考えると、js で大きな配列を宣言すると遅くなると思います。
javascript配列として含めます。そうすれば、簡単にループして選択ボックスにデータを入力できます。
var cities = [ 'London', 'Paris', 'Rome' ];
for (index in cities) {
var city = cities['index'];
//add value to select box
}
都市名以外のものが必要な場合は、オブジェクトの配列を作成できます。
var cities = [ { id : '1', name : 'Rome' }, { id : '2', name : 'London' }, ... ];
script
ブラウザで処理されない MIME タイプのタグに JSON として含めます。
<script type="conf/cities" id="citieslist">
['New York', 'London' ... 'Amsterdam']
</script>
次に、jQuery などを使用してコンテンツを取得できます。
var citylist = $.parseJSON($("#citieslist").text());
更新:
別の方法として、名前を改行で区切った単純なテキスト文字列としてリストを含める方法があります。string.split()
これにより、リストを取得するために簡単に使用できます。
var citylist = $("#citieslist").text().split('\n');
以下に示すように、これはかなりスペース効率が良いです。
<script type="conf/cities" id="citieslist">
New York
London
Amsterdam
</script>
JSのみが関係する場合、このようなものを作成できます
var 都市 = [ 'City1', 'City2', 'City3', ... ];
コントローラも関与している場合。コントローラーで都市配列を形成し、ビューとビューファイルに割り当てることができます
var 都市 = [ echo $cityList; ];
$cityList はコントローラーから来る配列です。