Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2008, 03:30
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
destripar objeto Ajax

Hola:

Siempre he pensado que conociendo los subobjetos de los objetos, se puede aprender algo más de los comportamientod de cada navegador y como implementan eso mismo: los objetos.
Basándome en el destripador, acabo de subir esta página: Destripando objetos Ajax, mostrando cada elemento de los objetos ajax en cada uno de los cambios de estado (onreadystatechange)

La idea de este mensaje es sacar conclusiones sobre los objetos ajax, sus atributos y subobjetos (vaya la redundancia), y también ver la mejor forma de implementar rutinas para encontrar esos datos.

Por ahora, un primer problema es no poder destripar el objeto responseXML con ie7, que creo que es el objeto más importante para desglosar, ya que es una de las mejores formas de obtener la información requerida.

Sobre responseText (objeto string), he notado que no hace falta esperar al "readystate 4", ya que en el estado 3 ya está accesible.

Siguiendo con responseXML, se puede crear un árbol DOM, buscando los nodos (desde el array childNodes) con nodeType=1 (tags), se puede obtener cada nombre y valor (nodeName y nodeValue) de cada etiqueta, además de obtenerse sus childNodes pudiendose hacer un recorrido recursivo.
Otra cosa que me pareció interesante es que esos tags también tienen su array de attributes, pudiendose guardar datos en esos mismos atributos, siendo de esa manera innecesaria un anidamiento de tags con un solo valor asociado.

A medida que vaya encontrando (o recordando) conclusiones las iré comentando...

Sobre el código js lo inserto con un include php, y se puede ver en este enlace: ajax.js, si alguien quiere aportar alguna mejora, será bienvenida, y si alguna cosa no se entiende, no tendré problemas en comentarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo