現在、反復ごとに DOM を更新するループがあります。これは悪い習慣であり、速度を向上させるために DOM の更新をできるだけ少なくする必要があることを学びました。
だから私は以下をどのように編集して、すべての要素を1つの要素または何かに保存し、ループが終了したら単一のDOM追加を行うことができるのか疑問に思っていました.
これがループです..
for (var i = spot; i < spot + batchSize && i < cats.options.length; i++) {
// Check if the cat is selected
if (cats.options[i].selected == true) {
// Set this category's values to some variables
var cat_id = cats.options[i].getAttribute('value');
var cat_name = cats.options[i].text;
if (checkCatSICAdd(cat_id) === false) {
// Now we create the new element
var new_option = document.createElement('option');
// Add attribute
new_option.setAttribute('value',cat_id);
// Create text node
var new_text_node = document.createTextNode(cat_name);
// Append new text node to new option element we created
new_option.appendChild(new_text_node);
// Append new option tag to select list
sel_cats.appendChild(new_option);
} else {
failed++;
}
}
}