В настоящее время я изучаю веб-работников, и мне нужно сделать некоторые вычисления в рабочем месте, которые не будут поддерживать поток в браузере.Как получить доступ к данным элемента элемента из веб-рабочего?
В настоящее время у меня есть вызов Ajax, который возвращает структуру XML-данных, содержащий множество блоков данных, как это:
<data>
<sub1>
<sub2>
<sub3>
</data>
<data>
<sub1>
<sub2>
<sub3>
</data>
Я затем создать объект из этой структуры данных, как так:
var node = $(xml).find(data);
I затем строит объект для передачи работнику следующим образом:
var toPass = JSON.stringify(node);
I п отправить эту переменную (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", & данных "sub3" "SUB2".
Я вижу, что я пытаюсь получить доступ к данным некорректно, поскольку я использую подход XML.find, Я чувствую, что я запутываю данные после того, как он был разобран на объект JSON.
Может ли кто-нибудь показать мне, как правильно обращаться к элементам данных в «узле [i]»?
С наилучшими пожеланиями.
Этот '$ (xml) .find (" data ")' - вы действительно пытаетесь создать объект JSON из результата jQuery? Я поражен тем, что это работает.В любом случае, это конечно не будет объектом jQuery, когда он будет восстановлен в веб-работнике. – Pointy
Возможно, я совершенно не прав здесь, но когда я console.log (node), я получаю «объект объекта», из которого его длина соответствует количеству тегов «», поэтому я думал, что структура выглядит как ** node [0] = {sub1: data, sub2: data, sub3: data} ** – user1005240
Да, но такие вещи, как «.find()», не могут работать, потому что вы не можете использовать функции JSON-encode. Другими словами, если он перейдет к веб-рабочему, больше нет кода jQuery. – Pointy