Estoy viendo un problema que necesita crear un bloque complejo de divs una vez para cada elemento en un conjunto de ~ 100 elementos.JavaScript: ¿Es mejor usar innerHTML o (muchas) llamadas a createElement para agregar una estructura div compleja?
Cada elemento individual es idéntico excepto por el contenido, y se ven (en HTML) o menos así:
<div class="class0 class1 class3">
<div class="spacer"></div>
<div id="content">content</div>
<div class="spacer"></div>
<div id="content2">content2</div>
<div class="class4">content3</div>
<div class="spacer"></div>
<div id="footer">content3</div>
</div>
Yo tampoco podía:
1) Crear todos los elementos como innerHTML
con una cuerda concatenación para agregar el contenido.
2) Use createElement
, setAttribute
y appendChild
para crear y agregar cada div.
La opción 1 obtiene un archivo ligeramente más pequeño para descargar, pero la opción 2 parece ser un poco más rápida de renderizar.
¿Aparte del rendimiento hay una buena razón para ir por una ruta u otra? ¿Algún problema de navegador/gremlins de rendimiento que deba probar?
... o debería probar la plantilla y el enfoque clónico?
Muchas gracias.
Véase también [¿Es posible anexar a innerHTML sin destruir los detectores de eventos descendientes?] (Http://stackoverflow.com/q/595808/1048572) – Bergi