JavaScriptでのHTMLの描画方法として、innerHTMLとDOM(createElement,appendChild等)の2パターンがあります。
上記について、DOMよりinnerHTMLの方が早いというのを聞きますが、実際どれくらい違うのかが気になったので、div配下の子ノードとしてdiv+テキストノードを複数追加するようなサンプルを書いてみました。
で測定しようと思ったところで、既に同じようなことをしている方を発見…
とりあえず、自分で作ったサンプルで測定してみました。結果(数回やったうちの平均)は下記になります。
- 500件の場合
- 1000件の場合
- 2000件の場合
今回のサンプルでは、全てのパターンで、innerHTMLがDOMより早かったのですが、innerHTMLの場合、文字列の結合等が多くなりがちで、文字列操作に時間がかかってしまう可能性もあるので、その部分には注意が必要です。
特にIEの文字列操作は、場合によってとてつもなく遅くなる場合もあります。(これについては、次のエントリで…)