我正在使用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。