jQueryを使用して選択に約500のオプションを追加しようとしています。500回のループを実行します。
for( var i=0; i<ids.length;i++ ){
$("#selectId').append('<option value="' + value + '">' + label + '</option>');
}
Mozilla Firefox
など、それは罰金に動作します(約3秒かかります)が、中にGoggle Chrome
ブラウザ半分分後にクラッシュします。
私はそれがどれくらいの時間を必要とするかを見るためにいくつかのログを置きました、それはループごとに1msで始まり、それからそれは〜1sに増加します...
それをより効率的にするための提案はありますか?
ループに2つのパフォーマンスの問題があります。
これらは両方ともパフォーマンスにコストがかかります。試してください:
var options = [];
for (var i = 0; i < ids.length; i++) {
// first, populate an array with all the options as strings
options.push('<option value="' + value + '">' + label + '</option>');
}
// then, join that array into a string and just .append or .html
$('#selectId').append(options.join(''));
// OR
$('#selectId').html(options.join(''));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加