一部のJavaScriptテンプレートエンジンを使用すると、要素を段階的に手動で追加したり、innerHTML文字列を作成したりする必要がなくなります。
たとえば、http://ejohn.org/blog/javascript-micro-templating。
HTMLのどこかにテンプレートがあるとします。
<script type="text/html" id="user_rows_tpl">
<% for(var y = 0, l = users.length; l > y; y++) { %>
<tr id="user-row-<%=y%>">
<td><%=users[y].name%></td>
<td><%=users[y].surname%></td>
<td><%=users[y].age%></td>
</tr>
<% } %>
</script>
次に、 JavaScriptでこのテンプレートを使用して、オブジェクトをレンダリングします。
<script type="text/javascript">
var table = document.getElementById("userTable");
table.innerHTML = tmpl("user_rows_tpl", {
users: getUsers()
});
</script>
テストのために、1000個のユーザーオブジェクトを作成し、それらをテーブルにレンダリングしました。
Google Chromeでの平均レンダリング時間は約20〜25ミリ秒です。悪くないですね。
デモ