Javascript 如何只需要一次web worker文件

Javascript 如何只需要一次web worker文件,javascript,multithreading,web-worker,Javascript,Multithreading,Web Worker,我正在开发一个多线程的项目。为此,我产生了8个web工作人员,他们都使用相同的源代码。它们的产生如下所示: var workers = []; for (var i = 0; i < 8; i++) { workers.push(new Worker('worker.js')); } var-workers=[]; 对于(变量i=0;i

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

  var workers = [];

  for (var i = 0; i < 8; i++) {
    workers.push(new Worker('worker.js'));
  }
var-workers=[];
对于(变量i=0;i<8;i++){
push(new-Worker('Worker.js'));
}
但这需要下载
worker.js
文件8次。有没有办法只需要一次源文件,然后重新使用它


奖金问题:是否有办法为工人中的
importScripts
执行此操作。因为现在每个worker都导入相同的脚本。

我建议您使用通常用于从字符串创建worker的代码,如下所示:

通过这种方式,您可以在主线程中加载字符串源,然后让工作人员执行它。工作者必须解析他们的源代码,因为javascript中的函数不能被克隆(请考虑作用域继承给出的所有含义)


也可以使用字符串为工作者提供此源。通过这种方式,您可以使用相同的源代码生成无限数量的工作程序。

AFAIK,如果是相同的文件,浏览器将不会再次下载它。它使用第一个下载的。我认为在这里重新下载没有意义。你确定每次都下载文件而不是从缓存中检索文件吗?我遇到了如何处理缓存工作文件的问题,例如: