Javascript 加快或避免在WebWorker中使用importScripts

Javascript 加快或避免在WebWorker中使用importScripts,javascript,optimization,ecmascript-6,web-worker,Javascript,Optimization,Ecmascript 6,Web Worker,我正在编写一个程序,在WebWorkers中执行用户提供的任意代码。我将工人代码构造为一个blob,并将用户提供的代码动态插入其中,然后从该blob实例化工人。我最初尝试从worker中评估代码,但不得不切换到这种方法,因为我需要能够查看堆栈跟踪和错误行号。作为web worker的一部分,需要使用importScripts()从CDN和我自己的服务器导入多个脚本。由于现在每次运行代码时都需要实例化一个新的worker,因此脚本导入在每次运行开始时都需要很长时间。有没有办法减少这段时间?是否可以

我正在编写一个程序,在WebWorkers中执行用户提供的任意代码。我将工人代码构造为一个blob,并将用户提供的代码动态插入其中,然后从该blob实例化工人。我最初尝试从worker中评估代码,但不得不切换到这种方法,因为我需要能够查看堆栈跟踪和错误行号。作为web worker的一部分,需要使用importScripts()从CDN和我自己的服务器导入多个脚本。由于现在每次运行代码时都需要实例化一个新的worker,因此脚本导入在每次运行开始时都需要很长时间。有没有办法减少这段时间?是否可以为所有未来的工作人员只导入一次所有必要的脚本?或者,将脚本排列在一起会有很大帮助吗

谢谢

您应该这样做:

  • 创建导入所需脚本的工作程序
  • 然后让工人等待“执行代码”消息
  • 此消息将包含用户代码
  • 工作人员将使用
    新函数(“字符串”)
  • 然后将执行该函数
这就是我在测试一些已经在这里运行的代码时所做的:

您可以在web worker运行时编辑该函数

尽管您可以尝试将有缺陷的脚本串联起来:

  • 丑陋的代码
  • 可能的CORS问题
您应该这样做:

  • 创建导入所需脚本的工作程序
  • 然后让工人等待“执行代码”消息
  • 此消息将包含用户代码
  • 工作人员将使用
    新函数(“字符串”)
  • 然后将执行该函数
这就是我在测试一些已经在这里运行的代码时所做的:

您可以在web worker运行时编辑该函数

尽管您可以尝试将有缺陷的脚本串联起来:

  • 丑陋的代码
  • 可能的CORS问题