hallo an alle Gewillten,
ich habe mal eine kleine Frage bezüglich der Optimierung meines codes.
Folgende Ausgangsstellung ich habe einen knoten mit mehreren kindknoten und möchte jetzt das alle diese kindknoten in einen wrapper div kommen, welcher nicht durch css verändert werden darf, soll heißen der wrapper darf an der Darstellung nichts ändern.
Ich skizziere mal das HTML und danach meine bisherige JS-Lösung.
<!-- Ausgangsstellung -->
<div id="container">
<h1>Überschrift</h1>
<p>Text</p>
<!-- usw. -->
</div>
<!-- Ziel -->
<div id="container">
<!-- die stylesheet müssen!! in das Element, weil ich nicht sicher sein kann, das nicht eine falsche css-regel diese angaben überschreibt! -->
<div style="margin:0;padding:0;border:0;outline:0;background:transparent;width:auto;height:auto;">
<h1>Überschrift</h1>
<p>Text</p>
<!-- usw. -->
</div>
</div>
//helfer-funktion, ist buggy, aber reicht hierfür aus!
function create(name,attr,childs){
var i,j;
name = document.createElement(name);
if(attr && typeof(attr) == 'object')
for(i in attr)
if(typeof(attr[i]) == 'object')
for(j in attr[i])
name[i][j] = attr[i][j];
else
name[i] = attr[i];
if(childs && childs.length)
for(i = childs.length; i--;)
name.insertBefore(childs[i], name.firstChild);
return name;
}
// Ab hier will ich die geschwindigkeit verbessern!
var container = document.getElementById('container');
var wrapper = create('div',{'style':{
'margin':'0',
'padding':'0',
'border':'none',
'background':'transparent',
'outline':'none',
'width':'auto',
'height':'auto'
}});
var tmp, i;
for(tmp = container.childsNodes, i = tmp.length; i--;)
wrapper.insertBefore(tmp[i], wrapper.firstChild);
so meine Frage ist nun genauer definiert, wie groß ist der Unterschied zwischen appendChild() und insertBefore() bezüglich der Geschwindigkeit und gibt es noch großen Optimierungsbedarf, ab der variable 'container' abwärts?
Danke schonmal im vorraus,
weil dieses Konstrukt versaut mir meine Performance... und ja mit einer Klasse oder ID wäre das schneller, sogar ca. 1,5 bis 2 mal so schnell, aber das will ich auf jeden Fall nicht!
mfG Felix Nehrke
P.S.: Besuche unseren Blog: http://www.pommes-blog.de
Manchmal gibs was neues :)
fo:| ch:| rl:( br:> n4:? ie:( va:) de:> zu:) fl:( ss:| ls:[ js:)