为什么Chrome不允许Web Workers在JavaScript中运行? [英] Why does not Chrome allow Web Workers to be run in JavaScript?

查看:1054
本文介绍了为什么Chrome不允许Web Workers在JavaScript中运行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我尝试通过JavaScript文件使用网络工作人员,Chrome会引发错误 -


未捕获的SecurityError:未能创建工人:'(path)/worker.js'脚本不能从原始'null'访问。


但是,如果我们直接通过HTML使用。



Chrome无法加载网络工作者,他说Chrome在从本地文件运行脚本时不允许加载网络工作者。



为什么Chrome浏览器不允许web worker在本地运行? b
$ b

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

解决方案

这个问题已经被问到了。只要您使用相对路径,工作人员在从磁盘打开的HTML文件中工作。但是,如果chrome正确地实现了这一点已经引起争议。



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

 新工人(./ scripts / worker.js); 

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



具体而言,将工作负载作为函数,然后将函数转换为字符串:

pre $ $ $ $ $ $ $ $ $ }
var worker = new Worker(URL.createObjectURL(new Blob([(+ worker_function.toString()+)()],{type:'text / javascript'})));


If I try to use web workers through a JavaScript file, Chrome throws an error -

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

But it allows them if we use directly through the HTML.

The answer on Chrome can't load web worker says Chrome doesn't let you load web workers when running scripts from a local file.

Why doesn't chrome allow web workers to run locally?

Web Workers work completely fine in Firefox, Safari and in Edge

解决方案

This question was already asked. The workers should work in HTML files opened from disk as long as you use relative path. However, if chrome implements this correctly has been disputed.

I advise that you try to use relative path in your scripts:

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

If that doesn't work, see this workaround: https://stackoverflow.com/a/33432215/607407

Specifically, load worker as a function, then convert the function to string:

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

这篇关于为什么Chrome不允许Web Workers在JavaScript中运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆