XML

DOM Parser de JavaScript y llamadas remotas

Pongámonos en situación. JavaScript es un lenguaje de cliente (client-side), esto es, que se ejecuta en la máquina cliente y no puede, por sí solo, acceder a los ficheros del servidor. Para poder acceder a ficheros o scripts del servidor, es necesario hacer uso del protocolo HTTP. Existe un objeto, llamado XMLHTTPRequest, que encapsula esta funcionalidad, facilitando el acceso al servidor desde JavaScript. Esta técnica dio origen a lo que hoy conocemos como AJAX (Asynchronous JavaScript And XML).

Pues bien, en un reciente desarrollo estuve cargando diversos ficheros XML con el DOM Parser de JavaScript. Para cumplir con el requisito crossbrowser, implementé una clase que abstrae la inicialización y la carga del objeto parser, ya que los objetos que proveen los navegadores son distintos:

Firefox, Mozilla, Opera:

var xmlDoc = document.implementation.createDocument (nameSpace, rootElement, null);

Internet Explorer:

var xmlDoc = new ActiveXObject ("Microsoft.XMLDOM"); 

Poco después me di cuenta de que podía haber cometido un grave error, ya que estaba probando el código en mi propia máquina. Sin embargo recordé que también había realizado pruebas desde otro equipo de la red y los ficheros XML se habían cargado correctamente. No obstante quería asegurarme, así que subí un pequeño prototipo de carga con un XML sencillo a un servidor remoto. Accediendo desde Internet, el parser recorrió la estructura del fichero sin problemas y me la mostró tal y como yo sospechaba. Nótese que realicé todas las pruebas desde Firefox y desde Internet Explorer.

La conclusión que saco es que el DOM Parser, en todas sus implementaciones, tiene implícita una llamada XMLHTTPRequest. No he encontrado documentación al respecto, pero tampoco me satisface ninguna otra explicación. En cualquier caso, estoy abierto a sugerencias.