Parsing XML in Web Workers

好久不见. 提交于 2019-11-27 21:48:15

问题


I know the Web Worker spec says "no access to DOM because DOM is not thread safe". While I can see that's logical for web workers and the HTML page DOM, it's actually very restrictive when considering parsing XML from an XmlHttpRequest call - after all, the basic handling of that call is asynchronous and so has little effect on the foreground thread, it's the parsing of the XML that slows down the foreground thread (when dealing with XML apps).

Is there any way other than building my own XML parser in Javascript (I'm not going the XPCOM route!) to parse XML in the Web Worker?


回答1:


Um - answering myself a few hours later - but this may well be a piece of information that proves very useful to people:

There IS an open-source, full function XML parser written entirely in javascript - and it works very well in Web Workers:

XML-JS

Basically, you just need to include tinyxmlsax.js and tinyxmlw3cdom.js in your worker, then follow the doc for using the W3C DOM.

With very little massaging, I got my code to work with both the normal DOMParser (for when running in the foreground) and the xmljs parser.

Obviously its slower - but that really isn't too much of an issue - after all, you're running it in the background!



来源:https://stackoverflow.com/questions/9133918/parsing-xml-in-web-workers

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!