複数の dom 操作を行うと、複数の再描画が強制されるため、悪いことはわかっています。
すなわち:
$('body').append('<div />')
.append('<div />')
.append('<div />')
.append('<div />');
代わりに、より良い方法は明らかに次のとおりです。
$('body').append('<div><div></div><div></div><div></div><div></div></div>');
しかし、私は仮想操作に興味があります
すなわち:
$('<div />').append('<div />')
.append('<div />')
.append('<div />')
.append('<div />')
.appendTo('body');
それはまだ悪いですか、明らかに関数を数回呼び出すことでいくらかのオーバーヘッドが発生しますが、パフォーマンスに重大な影響があるのでしょうか?
私が尋ねる理由はこれです:
var divs = [
{text: 'First', id: 'div_1', style: 'background-color: #f00;'},
{text: 'Second', id: 'div_2', style: 'background-color: #0f0;'},
{text: 'Third', id: 'div_3', style: 'background-color: #00f;'},
{text: 'Fourth', id: 'div_4', style: 'background-color: #f00;'},
{text: 'Fifth', id: 'div_5', style: 'background-color: #0f0;'},
{text: 'Sixth', id: 'div_6', style: 'background-color: #00f;'}
];
var element = $('<div />');
$.each(divs, function(i,o){
element.append($('<div />', o));
});
$('body').append(element);
divs 配列が、フォームを記述するデータベース テーブル (この例では div を使用していますが、入力に簡単に置き換えることができます) または類似のものから取得されたと想像してください。
または、「推奨」バージョンを使用すると、次のようになります。
var divs = [
{text: 'First', id: 'div_1', style: 'background-color: #f00;'},
{text: 'Second', id: 'div_2', style: 'background-color: #0f0;'},
{text: 'Third', id: 'div_3', style: 'background-color: #00f;'},
{text: 'Fourth', id: 'div_4', style: 'background-color: #f00;'},
{text: 'Fifth', id: 'div_5', style: 'background-color: #0f0;'},
{text: 'Sixth', id: 'div_6', style: 'background-color: #00f;'}
];
var element = '<div>';
$.each(divs, function(i,o){
element += '<div ';
$.each(o, function(k,v){
if(k != 'text'){
element += k+'="'+v+'" ';
}
});
element += '>'+o.text+'</div>';
});
element += '</div>';
$('body').append(element);