Вопрос по web-worker, javascript, html5 – Веб-работники и доступ к объекту, прикрепленному к объекту окна

4

У меня есть приложение ember, которое я создаю так:

window.App = Ember.Application.create({});

Я хочу сделать некоторую фоновую обработку на веб-работнике.

Как я могу получить доступ к объекту окна или некоторому другому глобальному объекту в отдельном веб-рабочем потоке?

Да уж. Из того, что я могу извлечь, вы должны делать что-то в новом потоке без непосредственных побочных эффектов в основном потоке. alex
Я пытаюсь загрузить объект с помощью json и сделать его доступным позже. Я должен поместить данные в локальное хранилище, поскольку попытка обновить хранилище в новом потоке имеет побочные эффекты. dagda1
Вы можете использоватьpostMessage() отправить состояние обратно? alex
Я могу, но разве это не передает контекст обратно в основной поток? dagda1

Ваш Ответ

1   ответ
9

Короткий ответ. Вы не можете ".

Веб-работникам доступны только те ресурсы, которые они загружают из файлов JavaScript, используяimportScripts() или что-нибудь, что передается им черезsendmessage().

Однако теперь вы можете передавать им объекты. Они сериализуются и десериализуются в JSON автоматически.

Также нет доступа к локальному хранилищу от Worker.

круто, я могу исключить это тогда. dagda1
Знаете ли вы, если я вызову importScripts, будет ли объект окна доступен в импортированном сценарии? dagda1
Вы можете иметьno access to the window Object from a worker.
@ dagda1 Попробуйте взглянуть наweb worker tutorial on MDN.
если я вызываю self.postMessage от веб-работника, это возвращает контекст обратно в основной поток пользовательского интерфейса или он все еще находится в рабочем потоке? dagda1

Похожие вопросы