Para quienes no se sientan cómodos usando la propiedad innerHTML porque no es estándar o porque el motivo que sea, existe una bilioteca que transforma un XHTML válido en DOM, listo para ser insertado con appendChild.
Se llama innerDOM.
También hace la conversión inversa, de un árbol DOM a un string XHTML. Funciona en cualquier navegador moderno y son sólo unas pocas líneas de código.
Hice una comparación de velocidad en Firefox 3.7a1pre y en Internet Explorer 8. Con diferentes cantidades de HTML a convertir a DOM.
Firefox 3.7a1pre
Longitud | innerHTML | innerDOM |
---|---|---|
Largo | 30 ms | 149 ms |
Medio | 2 ms | 9 ms |
Corto | 1 ms | 1 ms |
Internet Explorer 8
Longitud | innerHTML | innerDOM |
---|---|---|
Largo | 15 ms | 500 ms |
Medio | 0 ms | 32 ms |
Corto | 0 ms | 0 ms |
En Internet Explorer es más rápido innerHTML y en Firefox innerDOM. En ambos el resultado es el correcto con ambas alternativas.
Longitud | innerHTML | innerDOM |
---|---|---|
Largo | 30 | 149 |
Medio | 2 | 9 |
Corto | 1 | 1 |