我只是为网络工作者编写了一个脚本,想知道这是否是chrome浏览器遭受的另一个错误。
我不知道是否已经修复了另一个铬错误,因为您无法在运行中的铬工作程序中初始化另一个工作程序(嵌套):
https://code.google.com/p/chromium/issues/detail?id=31666
这在main.html中:
<script language="JavaScript" src="workerScript.js" type="text/javascript"></script>
<script language="JavaScript" src="workerScript2.js" type="text/javascript"></script>
<script>
// no error is thrown when workerScript.init('workerScript2.js') is called
console.log(workerScript.init('workerScript2.js')); // Worker { ... }
</script>
workerScript.js:
function callWorker(){
var worker = new Worker('workerScript.js');
}
callWorker(); // Uncaught ReferenceError: Worker is not defined
workerScript2:
var workerScript = {
init: function(file){
var worker = new Worker(file);
return worker;
}
};
在铬中执行main.html(版本40.0.2214.91 m)时
在workerScript.js中引发错误:
未捕获的ReferenceError:未定义Worker
在Chrome中,似乎只要您在已执行的html文件中初始化worker,就不会发生任何错误,只有在调用函数或执行new Worker(...)时在外部js文件中才会发生错误,就像在这种情况下workerScript.js。
实际问题:
这是铬的安全问题/预防措施,因为如果没有引发错误,workerScript.js会成为铬中的无限循环吗?(workerScript.js中的worker会尝试再次打开workerScript.js?)但是为什么在其他方法中也能正常工作Firefox甚至IE等浏览器?
最佳答案
根据Rob W提供的评论,它与问题顶部描述的错误相同。
希望此错误将很快得到修复。因为我必须检查它是否是Chrome浏览器,如果是,则仅运行一个主要工作人员,而不是几个嵌套工作人员。 Chrome速度很快,但就与员工进行计算而言,它可能会更快。
谢谢你的时间。
关于javascript - 为什么必须在Chrome浏览器中的HTML文件中初始化HTML5 Web Worker?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28128861/