パフォーマンスの違いが極端でない限り、私は常に読みやすさを好みます。この1回限りのケースでは、おそらくわずかな違いになります。
このような1回限りのケースでは、innerHTML
プロパティの設定が最も読みやすくなります。
ただし、JavaScriptで多くのプログラムによるコンテンツ生成を行っている場合は、DOMオプションを読みやすく理解しやすくなります。
例:
innerHTML
このコードを比較してください:
http://jsfiddle.net/P8m3K/1/
// Takes input of a value between 1 and 26, inclusive,
// and converts it to the appropriate character
function alphaToChar(alpha)
{
return String.fromCharCode('a'.charCodeAt() + alpha - 1);
}
var content = "<ul>";
for(i = 0; i < 10; ++i)
{
content += "<li>";
for(j = 1; j <= 26; ++j)
{
content += "<a href=\"" + alphaToChar(j) + ".html\">"
+ alphaToChar(j)
+ "</a>";
}
content += "</li>";
}
document.getElementById("foo").innerHTML = content;
このDOMコードに:
http://jsfiddle.net/q6GB8/1/
// Takes input of a value between 1 and 26, inclusive,
// and converts it to the appropriate character
function alphaToChar(alpha)
{
return String.fromCharCode('a'.charCodeAt() + alpha - 1);
}
var list = document.createElement("ul");
for(i = 0; i < 10; ++i)
{
var item = document.createElement("li");
for(j = 1; j <= 26; ++j)
{
var link = document.createElement("a");
link.setAttribute("href", alphaToChar(j) + ".html");
link.innerText = alphaToChar(j);
item.appendChild(link);
}
list.appendChild(item);
}
document.getElementById("foo").appendChild(list);
このレベルでは、長さに関しては非常に似たものになり始めます。
ただし、DOMコードは保守が容易であり、終了タグを省略するなど、診断が難しいタイプミスや間違いを犯す可能性は少し低くなります。要素がドキュメントに含まれるか、含まれないかのどちらかです。
- より複雑なシナリオ(ツリー化されたメニューの作成など)では、おそらくDOMコードを使用することになります。
- より異種のコンテンツを含むドキュメントを作成するために複数のタイプのコンテンツを一緒に追加する必要があるシナリオでは、それはスラムダンクになります。親の追加コードを呼び出す前に、子の追加コードを呼び出す必要はありません。
- 既存の静的コンテンツを追加、削除、または変更するシナリオでは、通常、DOMが優先されます。
複雑なDOM変更(最後に述べたものの1つ)を開始する場合は、jQueryなどのDOM変更を中心に構築されたライブラリを確認することをお勧めします。