我目前正在瞭解網絡工作人員,我需要在工作人員中做一些計算,以防止瀏覽器中出現流量。如何訪問web worker內的對象元素數據?
目前我有一個AJAX調用,它返回一個包含這樣的多個數據塊的XML數據結構:
<data>
<sub1>
<sub2>
<sub3>
</data>
<data>
<sub1>
<sub2>
<sub3>
</data>
我然後從該數據結構中創建一個對象,像這樣:
var node = $(xml).find(data);
我然後將對象轉化爲工人,如下所示:
var toPass = JSON.stringify(node);
I n這個變量(toPass)發送到工人,像這樣:
worker.postMessage(toPass);
到目前爲止,這一切工作正常,這個問題我已經試圖工人中訪問數據。
所以在工人我這樣做:
onmessage = function (oEvent) {
var node = JSON.parse(oEvent.data);
for(var = 0; i < node.length; i++){
var sub1 = node[i].find('sub1').text();
}
};
我面對的是試圖訪問 「SUB1」, 「SUB2」 & 「SUB3」 數據的問題。
我可以看到,我正在嘗試訪問數據不正確,因爲我正在使用XML.find方法, 我覺得我已經將數據解析爲JSON對象後感到困惑。
任何人都可以告訴我如何正確訪問「node [i]」中的數據元素嗎?
最好的問候。
'$(xml).find(「data」)' - 你真的想從jQuery結果中創建一個JSON對象嗎?我很驚訝,這是有效的。無論如何,當它在web worker中重組時,肯定不會是jQuery對象。 – Pointy
也許我在這裏完全錯了,但是當我console.log(節點)我得到的「[對象對象]」其長度匹配「」標籤的數量,所以我認爲結構看起來像**節點[0] = {sub1:data,sub2:data,sub3:data} ** – user1005240
是的,但是像.find()這樣的東西不能工作,因爲你不能使用JSON編碼函數。換句話說,如果它傳遞給網絡工作者,那麼就沒有jQuery代碼了。 – Pointy