2012-02-03 9 views
9

Wiem, że specyfikacja Web Worker mówi "brak dostępu do DOM, ponieważ DOM nie jest bezpieczny dla wątków". Chociaż widzę, że jest to logiczne dla robotów internetowych i strony HTML DOM, to jest bardzo restrykcyjne, gdy rozważa parsowanie XML z wywołania XmlHttpRequest - w końcu podstawowa obsługa tego połączenia jest asynchroniczna i ma mały wpływ na wątek pierwszoplanowy, to jest parsowanie XML, spowalniające wątek pierwszoplanowy (w przypadku aplikacji XML).Parsowanie XML w pracownikach WWW

Czy istnieje sposób poza budowaniem własnego parsera XML w JavaScript (nie zamierzam trasy XPCOM!) Do parsowania XML w Web Worker?

Odpowiedz

13

Um - odpowiadając sobie kilka godzin później - ale może to również być kawałek informacji, które okazuje się bardzo przydatny dla ludzi:

Jest open-source, pełna funkcja parsera XML w całości napisany w JavaScript - i działa bardzo dobrze w sieci Web Workers:

XML-JS

Zasadniczo, po prostu trzeba to tinyxmlsax.js i tinyxmlw3cdom.js w pracownika, a następnie postępować zgodnie z doc za pomocą W3C DOM.

Przy bardzo niewielkim masowaniu, mój kod działał zarówno z normalnym DOMParserem (dla uruchamiania na pierwszym planie), jak iz parserem xmljs.

Oczywiście jest wolniejszy - ale to naprawdę nie jest zbyt duży problem - w końcu uruchamiasz go w tle!

+0

Oto kolejna: https://github.com/isaacs/sax-js –