jQueryパフォーマンス:DOM操作について

DOM操作を避けてjQueryのパフォーマンスを改善する掟です。 こんなコードがあるとしましょう。

パフォーマンスの悪い例

var list = *....*;    // 長さ100の配列とする

for (var i in list) {

    var li = document.createElement("li");

    $(li)
       .attr("id", "li" + i)
       .text(list*i*);

$("ul").append(li);

}

改善したコード

var list = *....*;    // 長さ100の配列とする

var li = "";
for (var i in list) {

    li += "<li id='li" + i "'>" + list*i* + "</li>";

}

$("ul").html(li);

まとめ

実際のプロジェクトでやってみたら10倍以上は速くなりました。 とは言ってもこれはIE6でのパフォーマンスで、 FirefoxやIE8だと悪い例のコードても遅いとは実感できないくらいでした。

ちなみに $(li).attr(…).val(…).text(…)の方は読みやすいので結構気に入ったんですけど。。。

Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。