2011-12-05 8 views
2

質問がありますが、プロトタイプを使用していますが、この質問はネイティブのjavascriptにも当てはまる可能性があります。実行するために、一般的に、より速く、より効率的であるインラインHTMLを挿入したり、新しい要素を作成する方が速いのですか?

seperatly要素を作成し、このような変数に代入についてどのように
$(divElement).insert('<div>Hello</div'); 

または

$(divElement).insert(new Element(div).insert('Hello')); 

var helloDiv = '<div>Hello</div>'; 
$(divElement).insert(helloDiv); 

または

var helloDiv = new Element('div').insert('Hello'); 
$(divElement).insert(helloDiv); 

要素を作成して挿入するよりも高速にインラインhtmlを作成していますか?この情報は、特にテーブルのようなものを構築するのに役立ちます。

ご協力いただきありがとうございます。

+0

古い質問に対する回答の一部を受け入れる必要があります。プロフィールを見ることでそれらを見つけることができます。それはどのように動作するのですか – mrtsherman

+0

私は速度がここで問題ではないと思います。両方とも雷が速い。 –

答えて

2

ブラウザによって異なりますが、ieとfirefoxの場合は間違いありませんが、クロムの方が遅いと思われます。 http://jsperf.com/innerhtml-vs-createelement-test

+1

とにかくinnerHTMLを使用しているため、直接DOMを操作するテストがうまくいかないことに注意してください。 [This(http://jsperf.com/innerhtml-vs-createelement-test/2)マイナーな改善は、Firefoxで2倍の速度を向上させます。ただし、innerHTMLよりも速度は遅くなります。 – copy

2

innerHTM LはappendChildの利点は、あなたが実際にリードバックし、追加したタグを更新できるように、それは実際にすべてのブラウザで正常にDOMを更新していることであるappendChild

よりも高速です。

innerHTMLを使用すると、すべてのブラウザでDOMが更新されないため、そのように追加されたコンテンツは追加後に更新できないことがあります(必要な場合)。

関連する問題