Javascript Web工作人员和访问附加到窗口对象的对象

Javascript Web工作人员和访问附加到窗口对象的对象,javascript,html,web-worker,Javascript,Html,Web Worker,我创建了一个ember应用程序,如下所示: window.App = Ember.Application.create({}); 我想在web worker上做一些后台处理 如何在单独的web worker线程中访问窗口对象或其他全局对象?简短回答。你不能 web工作者唯一可用的资源是他们使用importScripts()或通过postMessage()传递给他们的任何内容从JavaScript文件加载的资源 但是,现在可以将对象传递给它们。它们被自动序列化和反序列化为JSON 此外,工作线程

我创建了一个ember应用程序,如下所示:

window.App = Ember.Application.create({});
我想在web worker上做一些后台处理


如何在单独的web worker线程中访问窗口对象或其他全局对象?

简短回答。你不能

web工作者唯一可用的资源是他们使用
importScripts()
或通过
postMessage()
传递给他们的任何内容从JavaScript文件加载的资源

但是,现在可以将对象传递给它们。它们被自动序列化和反序列化为JSON


此外,工作线程无法访问本地存储。

您可以使用
postMessage()
将状态发送回吗?我可以,但这不会将上下文传递回主线程吗?是的。据我所知,你应该在一个新线程上做一些事情,而不会对主线程产生直接的副作用。我试图做的是用json加载一个对象,然后让它稍后可用。我是否应该将数据放入本地存储,因为尝试更新新线程上的存储有副作用。您知道如果我调用importScripts,窗口对象在InImported脚本中是否可用吗?您不能从worker访问窗口对象。@dagda1试着查看。如果我从web worker调用self.postMessage,这是将上下文推回到主UI线程还是仍在工作线程上?@dagda1是指范围吗?
postMessage()
的作用域将是Worker对象。