この質問に対するコメントに触発されて、テストケースをまとめました。
私のPCのChrome 23で約15秒かかる500行のテーブルを作成しています。Bootstrap CSS を削除しても、完全に瞬時になるわけではありませんが、時間が大幅に短縮されます。
行を追加するための実際のコードは次のとおりです。
$.each(response, function (idx, row) {
var new_row = $('#row_template').clone();
new_row.removeAttr('id');
$('td[data-name=col1]', new_row).text(row.col1);
$('td[data-name=col2]', new_row).text(row.col2);
$('td[data-name=col3]', new_row).text(row.col3);
$('td[data-name=col4]', new_row).text(row.col4);
$('td[data-name=col5]', new_row).text(row.col5);
$('td[data-name=col6]', new_row).text(row.col6);
$('td[data-name=col7]', new_row).text(row.col7);
$('td[data-name=col8]', new_row).text(row.col8);
$('td[data-name=col9]', new_row).text(row.col9);
$('td[data-name=col10]', new_row).text(row.col10);
new_row.insertBefore($('#row_template')).show();
});
HTML と を連結することで得られる実行時間はおそらく最小ですgetElementById().innerHTML
が、使いやすさ (特にテンプレートから行を取得する) を維持しながら、他の明らかな最適化を行うことはできますか?