Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/09/2013, 17:31
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: comenzando con Js y un error -.-

¡buenas gentes!

@ignacio85r, lo que sucede es bien simple. cuando el navegador analiza el documento html se va creando un árbol jerárquico de nodos. como explicaba @caricatos, todos los nodos tienen una clasificación que se le asigna según sea la estructura del contenido en el documento. un salto de línea, un espacio, o un tabulador, aunque visualmente no tienen forma, siguen siendo caracteres tal cual como cualquier otro. al estos caracteres no estar dentro de lo que delimita un elemento ( < > ) o un atributo, normalmente se considera como un nodo tipo texto.

entonces, tomando en consideración los dos puntos antes mencionados, a nivel de bytes el navegador lee algo como lo siguiente (asumiendo que el texto en rojo es un byte por si solo): </elementoX>-salto linea-<elementoY>. es decir, el cierre de un elemento, un salto de línea, y el inicio de un elemento. (en el ejemplo estoy omitiendo el inicio del primer elemento y el cierre del segundo elemento el cual son parte de los nodos correspondientes.) ahí hay tres nodos: dos de tipo Element y uno de tipo Text. se crea porque ese salto de línea no corresponde a un delimitador de elemento o atributo. lo mismo sucede, no solo con los whitespace, sino con el resto de los caracteres que no conforman parte de la sintaxis del lenguaje.

Código:
este ejemplo, en esencia lucen similares, pero a nivel de jerarquía son distintos
<elemX attrib="val">salto linea fuera de elemento
<elemY>
content
</elemY>salto linea fuera de elemento
</elemX>

<elemX attrib="val"salto linea dentro de elemento
><elemY>
content
</elemYsalto linea dentro de elemento
></elemX>
el primer código, elemX tiene tres nodos: Text, Element, Text. el segundo código, elemX tiene un solo nodo: Element. luego en ambos códigos, elemY tiene un solo nodo: Text. ésto porque en el contenido del elemento elemY no hay nada que le indique al navegador que debe crear un nodo de un tipo distinto a Text. recuerda el segundo punto, el whitespace no es un delimitador del lenguaje al igual que otros caracteres, como el alfanumérico.

para más información, te recomiendo que leas acerca de la jerarquía de nodos; o lo mismo que sobre la estructura del DOM.

Cita:
Iniciado por Edit
vaya, que me tome mucho tiempo en redactar igual tienes dos fuentes de información para complementar.
saludos
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 24/09/2013 a las 17:41