我知道网络工作者无法直接访问dom。但做这样的事情会是个坏主意:
var doc = $(document);
var worker = new Worker("worker.js");
worker.postMessage({ cmd: 'doDomStuff', data: doc });
你看到这个代码有什么缺点吗?
非常感谢任何提示/评论。
更新:为了清楚起见:我只想从DOM获取数据,不设置任何新值或以任何方式操纵DOM。
答案 0 :(得分:9)
我看不出你不能这样做的任何理由,但当你试图操纵工人和主要工作中的相同元素时,这可能会导致问题js代码同时。
您需要在代码中添加一些互斥锁。
抱歉抓上面......
工作人员不有权访问:
DOM(它不是线程安全的)
窗口对象
文件对象
父对象