如何只需要一次web worker文件

时间:2017-09-08 11:20:29

标签: javascript multithreading web-worker

我正在开发一个多线程项目。为此,我产生了8个web工作者,所有人都使用相同的源代码。这些产生如下:

  var workers = [];

  for (var i = 0; i < 8; i++) {
    workers.push(new Worker('worker.js'));
  }

但这需要将worker.js文件下载8次。有什么办法可以只需要一次源文件,然后再重复使用它吗?

奖金问题:有没有办法为工人importScripts做这件事。导致每个工作人员现在都导入相同的脚本。

1 个答案:

答案 0 :(得分:0)

我建议你使用通常用于从字符串创建worker的代码,在这里:https://stackoverflow.com/a/33432215/607407

这样,您可以在主线程中加载字符串源,然后让工作人员执行它。工作人员必须解析他们的来源,因为无法克隆javascript中的函数(想想范围继承给出的所有含义)。

也可以使用字符串为工作人员提供此来源。这样,您可以使用相同的源代码生成无限数量的工作者。