まとめてノードを追加する

説明

DOM (Document Object Model : ドキュメントオブジェクトモデル)でのノードの処理が大量に行われた場合に処理速度が低下し動作に支障をきたす場合があります。そのような場合にはドキュメントフラグメントを生成し、そこにノードの追加などの処理を行い、最後に一括してページ上に表示することができます。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>まとめてノードを追加する</h1>
<form action="./mknode.cgi" method="get" name="mainForm">
<input type="button" id="addButton" value="ノードを一括して追加"><br>
</form>
<div id="result"></div>
</body>
</html>

window.onload = function(){
document.getElementById("addButton").onclick = function(){
var dfNode = document.createDocumentFragment();
for (var i=0; i<1000; i++){
var text = document.createTextNode(Math.random() * 6 + 1);
var divTag = document.createElement("div");
divTag.appendChild(text);
dfNode.appendChild(divTag);
}
document.getElementById("result").appendChild(dfNode);
}
}