Web worker中的DOM操作

kbt*_*tzr 6 javascript html5 web-worker

我知道工人不能直接操纵文档,但DOM API方法怎么样?他们去哪儿了?!

例如,如果我发出一个接收HTML片段的请求,那么如果需要解析它以便从特定节点检索某些数据,我应该做什么?!

绝对没办法在网络工作者上使用虚拟DOM?!

niu*_*ech 6

您可以使用在 Web Worker 中运行的 DOM 实现之一:


Tom*_*ica 5

浏览器支持

DOMParser或者document.implementation通常用于在浏览器中将 HTML 解析为 DOM。两者都不适用于 worker 上下文。

在 Firefox 中,这是不可能的,因为有人决定所有线程只有一个 DOM 解析器实例。看到这个错误:https : //bugzilla.mozilla.org/show_bug.cgi?id=677123

在谷歌浏览器中它也不起作用。

解决方法 - 外部库

没错,由于浏览器开发人员没有意识到 DOM 和 XML 解析将成为 WebWorkers 的主要用途之一,我们将不得不退回到外部库。最好的选择似乎是JSDOM,但您需要弄清楚如何浏览它


这是我失败的尝试DOMParser,我保留它以备将来关于此主题的实验:https : //jsfiddle.net/svaqb2wn/2/