9

我知道网络工作者不能直接访问 dom。但是做这样的事情是不是一个坏主意:

var doc = $(document);

var worker = new Worker("worker.js");

worker.postMessage({ cmd: 'doDomStuff', data: doc });

你觉得这段代码有什么缺点吗?

非常感谢任何提示/评论。

更新:明确一点:我只想从 DOM 中获取数据,而不是设置任何新值或以任何方式操作 DOM。

4

1 回答 1

10

我看不出你不能这样做的任何原因,但是当你试图同时在 worker 和主 js 代码中操作相同的元素时,这可能会导致问题。

您需要在代码中添加一些互斥锁。

对不起,划破上面...


工人无权访问:

DOM(它不是线程安全
的) 窗口对象
文档对象
父对象

来源

于 2012-08-08T21:04:34.140 回答