gpt4 book ai didi

javascript - 加快或避免在 WebWorker 中使用 importScripts

转载 作者:行者123 更新时间:2023-11-28 04:22:02 26 4
gpt4 key购买 nike

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

谢谢!

最佳答案

你应该这样做:

  • 创建一个工作程序来导入您需要的脚本
  • 然后让worker等待“执行代码”消息
  • 此消息将包含用户的代码
  • worker 将使用 new Function("string") 转换代码
  • 然后该函数将被执行

这就是我在测试此处已经运行的一些代码时所做的:http://darker.github.io/asteroids/demo-elastic-bounce/

您可以在 Web Worker 运行时编辑该函数。

尽管您可以尝试内嵌有缺陷的脚本:

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

关于javascript - 加快或避免在 WebWorker 中使用 importScripts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45359234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com