Foros del Web » Programando para Internet » Javascript »

En el 2011, usar innerHTML ó DOM ?

Estas en el tema de En el 2011, usar innerHTML ó DOM ? en el foro de Javascript en Foros del Web. Hola, saludos para todos. Hace como 2 meses he estado aprendiendo sobre DOM. Por medio de una aplicación web que estoy trabajando, tuve que estudiar ...
  #1 (permalink)  
Antiguo 12/02/2011, 12:40
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 9 meses
Puntos: 7
Pregunta En el 2011, usar innerHTML ó DOM ?

Hola, saludos para todos.

Hace como 2 meses he estado aprendiendo sobre DOM. Por medio de una aplicación web que estoy trabajando, tuve que estudiar un poco el tema.

Quería pedir opinión a cada uno de ustedes para actualizarnos.
Por ejemplo, hace mucho tiempo necesitaba saber como borrar el contenido de un div, campo de formulario ó cualquier elemento HTML. En este caso, digamos que tengo un div al que llamaré principal. Algo así:

Código HTML:
Ver original
  1. <div id="principal">Hola, este es el texto de inicio</div>

Y digamos que después que el usuario le de click a un botón, el contenido del div principal deba cambiarse a:

Código HTML:
Ver original
  1. <div id="principal">Hola, este es mi nuevo texto</div>

Yo sé que ese cambio de texto se puede hacer de dos maneras:

1. DOM

Código Javascript:
Ver original
  1. var div1=document.createElement('div');
  2. div1.setAttribute('id','principal');
  3. var txt1=document.createTextNode('Hola, este es mi nuevo texto');
  4. div1.appendChild(txt1);


2.innerHTML
Código Javascript:
Ver original
  1. document.getElementById('principal').innerHTML = 'Hola, este es mi nuevo texto';

Hace como un año leí varios artículos sobre usar innerHTML y DOM.

Aunque es más rápido desarrollar código con innerHTML según se dice que no es un estándar en el mundo del web. En este artículo creado en el no lo apoyan, más bien se le dan créditos a DOM, aunque sea más complicado de crear el código. Había leído este y mucho otros artículos más que desacreditaban al innerhtml y apoyaban al uso de DOM. Entonces, tomé la decisión de usar DOM por ser un estándar y no innerhtml que según entiendo lo creó $Microsoft.

Hace cómo dos meses decidí investigar de nuevo y me parece que innerhtml ha tomado más fuerza y parece ser más aceptado y si no me equivoco se está estandarizando.

Según un artículo de W3schools navegadores como Internet Explorer (lógico), Mozila Firefox, Safari, Chrome y Opera lo soportan.

Según había leído en un post de este mismo Foro, parece ser que para HTML 5 el innerHTML será incluido. No puedo incluir el link, porque no recuerdo en que parte está.

He leído varios artículos, pero que fueron publicados unos en el 2005, otros en el 2008, 2009 y es lo que muchos opinaban sobre innerHTML vrs DOM.

Ya que la tecnología es tan cambiante, es decir, hoy dices una cosa y dentro de 1 año hablando del mismo tema debes cambiar tu forma de pensar, me atreví a consultar en este foro si innerHTML ya es usado oficialmente como un estándar. A la fecha que estoy publicando este Post, recomiendan usar innerHTML ó mejor DOM.

En otro foro, un usuario responde en un artículo lo siguiente:

Cita:
innerHTML no es estandar. Los estandares los define la W3C, indepediente de quien cree los codigos y/o lenguajes, aunque se dice que en los prox años la W3C piensa declarar innerHTML como estandar, pero hasta el momento es solo una funcion creada por Microsoft. Por estos dias ya son varios los navegadores que utilizan esta funcion, pero aun asi no es recomendable. Aunque sea un logo mas extenso, y para algunos complicado, es mejor utilizar DOM, ya que es un estandar de la W3C.
Esto fué publicado aproximadamente hace como 2 años.

Recuerden que el problema de usar innerHTML hace 1, 2, 3 ó más años era porque no es un estándar, pero al día de hoy ? Que recomiendan ?

Quería actualizarme sobre ese tema.

Saludos y gracias.
__________________
Loading...
  #2 (permalink)  
Antiguo 12/02/2011, 13:19
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 11 meses
Puntos: 206
Respuesta: En el 2011, usar innerHTML ó DOM ?

InnerHTML gana en velocidad.
DOM gana en legibilidad.

Velocidads VS legibilidad y mantenimiento de código. Tú eliges lo que más te convenga.
http://www.quirksmode.org/dom/innerhtml.html
  #3 (permalink)  
Antiguo 12/02/2011, 16:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: En el 2011, usar innerHTML ó DOM ?

puedes encontrar útil la lectura de este articulo
  #4 (permalink)  
Antiguo 15/02/2011, 16:00
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 9 meses
Puntos: 7
De acuerdo Respuesta: En el 2011, usar innerHTML ó DOM ?

Cita:
Velocidads VS legibilidad y mantenimiento de código. Tú eliges lo que más te convenga.
Gracias marlanga. Realmente analicé tu comentario. Realmente, cuando trabajo en un sitio trato de aprovechar al máximo los dos. Pero tu mismo lo dices:
Cita:
Tú eliges lo que más te convenga.
Por lo visto,para proyectos grandes es mejor pensar en el mantenimiento del código y sacrificar la velocidad.

Si el proyecto es pequeño, tenemos más opciones entre la velocidad y el mantenimiento.

Gracias IsaBelM. Estaba viendo el link que compartiste. Está muy interesante.
Muy útil sus aportes
__________________
Loading...
  #5 (permalink)  
Antiguo 15/02/2011, 18:57
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 11 meses
Puntos: 206
Respuesta: En el 2011, usar innerHTML ó DOM ?

También lo decía por la cantidad de elementos a modificar de golpe. Si son pocos, no sé, digamos menos de 20, entre usar DOM o innerHTML no habrá mucha diferencia. Mejor DOM, ya que es más autoexplicativo.
Sin embargo, a veces, yo he tenido que hacer scripts que modifican muchas celdas de tablas de 300 filasy 20 columnas, y no hay color: innerHTML por cojones.
Si recorriera el árbol DOM de la tabla se colaría un retardo que volvería incómoda la funcionalidad que buscaba.
Pero ya digo, depende del caso donde se vaya a aplicar.

Etiquetas: dom, innerhtml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:00.