2012-02-03 26 views
9

Web Çalışanı teknik özelliklerinin, "DOM'ın iş parçacığı güvenli olmadığı için DOM'a erişim olmadığını" bildiğini biliyorum. Web işçileri ve HTML sayfası DOM için bu mantıksal olduğunu görebiliyorken, aslında bir XmlHttpRequest çağrısından XML ayrıştırmayı düşünürken aslında çok kısıtlayıcıdır - sonuçta, bu çağrının temel işlenmesi eşzamansızdır ve bu nedenle ön plan iş parçacığı üzerinde çok az etkisi vardır. Önplan dizisini yavaşlatan XML'in ayrıştırılması (XML uygulamalarıyla uğraşırken).Web İşleyicilerinde XML Ayrıştırma

Web Çalışanı'nda XML'yi ayrıştırmak için kendi XML çözümleyicimi Javascript'te (XPCOM yoluna gitmiyorum!) Oluşturmanın dışında bir yolu var mı?

cevap

13

Um - Daha sonra kendimi birkaç saat yanıtlayan - ama bu iyi insanlara çok yararlı kanıtlıyor bilgi parçası olabilir: bir açık kaynak, javascript tamamen yazılmış tam fonksiyon XML ayrıştırıcı vardır IS

- ve o Web İşçileri çok iyi çalışıyor:

XML-JS

Temel olarak, sadece, sonra işçi de tinyxmlsax.js ve tinyxmlw3cdom.js dahil W3C DOM kullanarak dokümanı takip etmek gerekir.

Çok az masajla, hem normal DOMParser (ön planda çalışırken için) hem de xmljs ayrıştırıcısıyla çalışmak için kodumu aldım.

Açıkçası daha yavaş - ama bu gerçekten çok fazla sorun değil - sonuçta arka planda çalışıyorsunuz!

+0

İşte bir tane daha: https://github.com/isaacs/sax-js –