我知道Web Worker规范说“无法访问DOM,因为DOM不是线程安全的”。虽然我可以看到这对于Web工作者和HTML页面DOM来说是合乎逻辑的,但是当考虑从XmlHttpRequest调用解析XML时,它实际上是非常严格的 - 毕竟,该调用的基本处理是异步的,因此对前台线程几乎没有影响,它是解析XML会减慢前台线程的速度(处理XML应用程序时)。
除了在Javascript中构建我自己的XML解析器(我不会使用XPCOM路由!)以解析Web Worker中的XML之外,还有其他方法吗?
答案 0 :(得分:13)
有一个完全用javascript编写的开源,全功能XML解析器 - 它在Web Workers中运行良好:
基本上,您只需要在您的worker中包含tinyxmlsax.js和tinyxmlw3cdom.js,然后按照文档使用W3C DOM。
只需很少的按摩,我就可以使用正常的DOMParser(在前台运行时)和xmljs解析器。
显然它的速度较慢 - 但这确实不是太大的问题 - 毕竟,你是在后台运行它!