SharedWorkers 可以使用来自其他共享 worker 的全局变量吗?

Can SharedWorkers use global variables from other shared workers?

我需要做一些繁重的工作,并且发现必须重新格式化我的整个代码有点乏味并且想知道 "Can SharedWorkers use global variables from other shared workers?"。

如果可以,有人可以做一个简单的演示吗?我对 SharedWorkers 还很陌生。我看到一个非常接近回答我的问题但没有提供示例的线程,请参阅:@Raynos

的第二个答案

What's the difference between Shared Worker and Worker in HTML5?

我也看了主要文档,回答这个问题有点乏味。它只是继续使用单个共享工作者与其他页面对话。无论如何,这个实际的例子会非常惊人,我已经搜索了很长时间,但到目前为止一无所获。

SharedWorkers 有 limited support - 只有 Firefox 和 Chrome。除非您有已知的听众,否则最好避免使用它们。

回答这个问题:一个 SharedWorker 可以不能 直接访问另一个 SharedWorker 的变量。

与工作人员交流的唯一方法是 post 并接收消息。一个 SharedWorker 可以启动另一个 SharedWorker,但它仍然需要传递它想要共享的值。

一般来说,SharedWorkers 在以下情况下很有用:

  1. 您的应用程序打开多个 windows 或框架
  2. 任何实例都可以设置值并启动处理,并且
  3. 结果将post返回到部分或所有实例。

这很不寻常 use-case。