如果我尝试通过 JavaScript 文件使用 Web Worker,Chrome 会抛出错误 -
未捕获的安全错误:无法创建工作程序:无法从源“null”访问“(path)/worker.js”处的脚本。
但如果我们直接通过 HTML 使用,它就允许它们。
答案关于Chrome 无法加载 Web Worker https://stackoverflow.com/questions/21408510/chrome-cant-load-web-worker说 Chrome 不允许您在从本地文件运行脚本时加载 Web Worker。
为什么 Chrome 不允许 Web Worker 在本地运行?
Web Workers 在 Firefox、Safari 和 Edge 中工作得完全正常
这个问题已经被问过。工人should只要您使用,就可以处理从磁盘打开的 HTML 文件相对路径。然而,chrome 是否正确实现了这一点一直存在争议。
我建议您尝试在脚本中使用相对路径:
new Worker("./scripts/worker.js");
如果这不起作用,请参阅此解决方法:https://stackoverflow.com/a/33432215/607407 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'})));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)