いくつかのJavaScriptテンプレートエンジンを使用して、手動で要素を追加したり、innerHTML文字列を作成したりすることを避けることができます。
たとえば、http://ejohn.org/blog/javascript-micro-templating。
<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>
を
は、あなたがどこかHTMLでテンプレートを持っていると言います私は1000のユーザーオブジェクトを作成し、それらをテーブルにレンダリングしました。
平均レンダリング時間は、Google Chromeでは約20〜25msです。それは悪くないのですか?
DEMO
どのような形式でのデータである場合には? JSON?その場合は、JavaScriptテンプレートエンジン(例:Handlebars)を使用してHTML文字列全体を作成し、その文字列をDOMに一度に追加することをおすすめします。 –
これを確認してください(http://stackoverflow.com/questions/429174/posest-to-add-large-amount-of-dom-nodes-with-browser-choking) –
あなたはDocumentFragmentを作成し、それを一度追加します。私は、ブラウザがフラグメントの作成中にブロックする必要があるとは思わない。 – jimp