我正在使用document.implementation.createHTMLDocument
方法解析大型HTML文件。我創建新的文檔,在HTML寫上它們,然後使用標準文件的方法來遍歷樹。使用web工作人員解析HTML
這證明在瀏覽器上非常密集,我正在尋找其他選項。
我正在考慮卸載工作給WebWorkers,但據我所知他們無法訪問DOMImplementation接口。
難道我就在我的假設?
有沒有其他有效的方法可以使用?
我正在使用document.implementation.createHTMLDocument
方法解析大型HTML文件。我創建新的文檔,在HTML寫上它們,然後使用標準文件的方法來遍歷樹。使用web工作人員解析HTML
這證明在瀏覽器上非常密集,我正在尋找其他選項。
我正在考慮卸載工作給WebWorkers,但據我所知他們無法訪問DOMImplementation接口。
難道我就在我的假設?
有沒有其他有效的方法可以使用?
寫這個問題一分鐘後,我發現下面的語句在jsdom項目:
它甚至有瀏覽器中運行,使您能夠創造出一個DOM文檔網絡工作者中的能力的實驗性支持。
所以我想我會看着jsdom,並測試我是否能從這種方法獲得性能提升。
任何其他建議/想法將不勝感激。
這被證明是非常密集的瀏覽器,我正在尋找其他的選擇。
做同樣的事情,但在一個網絡工作者仍然是密集的,它只是在做用戶界面不會掛了,你有更多的膠水代碼/行爲編寫和維護接線的一切行動。
我創建新文檔,將HTML寫入它們,然後使用標準文檔方法遍歷樹。
,可能適合你的情況的替代,是不是因爲你現在使用基於DOM的解析,是使用基於事件的解析。 https://github.com/isaacs/sax-js或https://github.com/marko-js/htmljs-parser可能是合理的出發點。根據如何你迭代,你與每個節點做什麼,這有可能成爲資源較少。甚至有一天做它在瀏覽器UI線程。
當然,如果結果仍然過於緊張,您可以將其移至網絡工作人員,以避免在處理文檔時掛起UI。