2012-02-03 12 views
9

Sé que la especificación Web Worker dice "no hay acceso a DOM porque DOM no es seguro para subprocesos". Aunque puedo ver que es lógico para los trabajadores web y la página HTML DOM, en realidad es muy restrictivo cuando considero analizar XML desde una llamada XmlHttpRequest - después de todo, el manejo básico de esa llamada es asíncrono y tiene poco efecto en el hilo de primer plano, es el análisis del XML que ralentiza el hilo de primer plano (cuando se trata de aplicaciones XML).Analizando XML en Web Workers

¿Hay alguna otra manera además de construir mi propio analizador XML en Javascript (no voy a usar la ruta XPCOM) para analizar XML en Web Worker?

Respuesta

13

Um - respondiendo a mí mismo unas horas más tarde - pero esto puede ser una pieza de información que resulta muy útil a la gente:

No es un código abierto, todas las funciones del analizador XML escrito completamente en javascript - y funciona muy bien en web Workers:

XML-JS

Básicamente, sólo tiene que incluir tinyxmlsax.js y tinyxmlw3cdom.js en su trabajo, a continuación, seguir el doc para usar el DOM de W3C.

Con muy poco masaje, conseguí que mi código funcionara tanto con el DOMParser normal (para cuando se ejecuta en primer plano) como con el analizador xmljs.

Obviamente, es más lento, pero realmente no es un gran problema, ¡después de todo, lo está ejecutando en segundo plano!

+0

Aquí hay otro: https://github.com/isaacs/sax-js –