我知道web工作人員無法直接訪問dom。但是這樣做是一個糟糕的主意:將文檔對象傳遞給Web工作人員
var doc = $(document);
var worker = new Worker("worker.js");
worker.postMessage({ cmd: 'doDomStuff', data: doc });
你看到這代碼的任何缺點?
任何提示/意見非常感謝。
更新:只是要清楚:我只想從DOM中getdata,不設置任何新值或以任何方式操縱DOM。
我知道web工作人員無法直接訪問dom。但是這樣做是一個糟糕的主意:將文檔對象傳遞給Web工作人員
var doc = $(document);
var worker = new Worker("worker.js");
worker.postMessage({ cmd: 'doDomStuff', data: doc });
你看到這代碼的任何缺點?
任何提示/意見非常感謝。
更新:只是要清楚:我只想從DOM中getdata,不設置任何新值或以任何方式操縱DOM。
我看不出有什麼理由爲什麼你
不能這樣做,但這可能會導致問題,當你試圖操縱同一個元素的工人和主js代碼在同一時間。
您需要爲代碼添加一些互斥鎖。
對不起劃傷以上......
工人做不訪問:
的DOM(它不是線程安全的)
窗口對象
文檔對象
父對象
在其他語言中,操縱UI的唯一線程創建它的線程(我專門思考的.Net,但Java和其他人可能就此別過)。除非瀏覽器以不同的方式處理事情,否則這可能是Web工作人員自然不能訪問DOM的原因。 – 2012-08-08 21:04:15
@CoreyOgburn請參閱我的更新 – Johan 2012-08-08 21:09:03
聽起來像是一件容易測試的東西。 – 2012-08-08 21:11:03