Разбор XML в веб-рабочих

Я знаю, что спецификация Web Worker гласит: "Нет доступа к DOM, потому что DOM не является потокобезопасным". Хотя я вижу, что это логично для веб-работников и DOM-страницы HTML, на самом деле это очень ограничительно при рассмотрении синтаксического анализа XML из вызова XmlHttpRequest - в конце концов, базовая обработка этого вызова асинхронна и поэтому мало влияет на поток переднего плана, это синтаксический анализ XML, который замедляет основной поток (при работе с приложениями XML).

Есть ли другой способ, кроме создания моего собственного анализатора XML в Javascript (я не собираюсь идти по пути XPCOM!), Для анализа XML в Web Worker?

1 ответ

Хм - отвечаю себе через несколько часов - но это может быть часть информации, которая оказывается очень полезной для людей:

Существует полнофункциональный синтаксический анализатор XML с открытым исходным кодом, полностью написанный на javascript - и он отлично работает в Web Workers:

XML-JS

По сути, вам просто нужно включить tinyxmlsax.js и tinyxmlw3cdom.js в вашего работника, а затем следовать документации для использования W3C DOM.

С очень небольшим массажем я получил свой код для работы как с обычным DOMParser (для работы на переднем плане), так и с анализатором xmljs.

Очевидно, это медленнее - но это на самом деле не так уж много проблем - в конце концов, вы запускаете его в фоновом режиме!

Другие вопросы по тегам