2011-12-05 36 views
2

我有一個問題,我使用原型,但也許這個問題也可以適用於本機JavaScript。插入內嵌HTML或創建新元素會更快嗎?

這將是通常更快,更高效的運行:

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

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

如何seperatly創建元素,並將其分配給這樣的變量:

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來說絕對是真的,但在Chrome上似乎更慢: 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

appendChild的優點是,它實際上正確更新DOM在所有瀏覽器,讓您可以真正回讀和更新您添加的標籤。

使用innerHTML不會更新所有瀏覽器中的DOM,因此添加的內容可能無法在添加後更新(如果需要這樣做)。