gpt4 book ai didi

javascript - 为什么 Chrome 不允许 Web Worker 在 JavaScript 中运行?

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:30 25 4
gpt4 key购买 nike

如果我尝试通过 JavaScript 文件使用网络 worker ,Chrome 会抛出错误 -

Uncaught SecurityError: Failed to create a worker: script at '(path)/worker.js' cannot be accessed from origin 'null'.

但如果我们直接通过 HTML 使用,它允许它们。

Chrome can't load web worker 上的答案说 Chrome 不允许您在从本地文件运行脚本时加载网络 worker 。

为什么 chrome 不允许 web workers 在本地运行?

Web Workers 在 Firefox、Safari 和 Edge 中工作得很好

最佳答案

这个问题已经有人问过了。只要您使用相对路径,工作人员就应该处理从磁盘打开的 HTML 文件。但是,如果 chrome 正确实现这一点,则存在争议。

我建议您尝试在脚本中使用相对路径:

new Worker("./scripts/worker.js");

如果这不起作用,请参阅此解决方法:https://stackoverflow.com/a/33432215/607407

具体来说,将 worker 作为函数加载,然后将函数转换为字符串:

function worker_function() {
// all worker code here
}
var worker = new Worker(URL.createObjectURL(new Blob(["("+worker_function.toString()+")()"], {type: 'text/javascript'})));

关于javascript - 为什么 Chrome 不允许 Web Worker 在 JavaScript 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37718656/

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