将文档对象传递给Web worker

Joh*_*han 9 jquery html5 web-worker

我知道网络工作者无法直接访问dom.但是做这样的事情会是一个坏主意:

var doc = $(document);

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

worker.postMessage({ cmd: 'doDomStuff', data: doc });
Run Code Online (Sandbox Code Playgroud)

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

任何提示/评论都非常感谢.

更新:要明确:我只想从DOM获取数据,不设置任何新值或以任何方式操纵DOM.

Nea*_*eal 9

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

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

抱歉抓上面......


工人们能够访问:

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

资源

  • 我知道工作人员没有直接访问DOM,这就是为什么我试图将它作为一个对象传递.我忘了提到我并不打算在工人中操纵它.我只想得到价值,而不是设置任何东西. (4认同)