我只是为网络工作者编写了一个脚本,想知道这是否是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/

10-09 17:25