创建一个传递匿名函数的Javascript Worker

时间:2013-12-25 10:50:32

标签: javascript web-worker

为了实例化一个新的Worker,逻辑如下:

var w = new Worker("demo_workers.js");

demo_workers.js包含工人将要做的事情的定义。是否有可能避免创建新的.js并将内部函数传递给该构造函数?像

这样的东西
var w = new Worker(
   function(){
       alert("hey!");
   };
);

2 个答案:

答案 0 :(得分:2)

您无法使用函数创建worker,因为这会导致许多并发问题。您需要将URL传递给脚本。

但是,您可以使用您在运行时创建的Blob的网址。 MDN has a great example他们使用同一页面上未评估的<script>标记的内容创建工作人员。这样,您可以使用worker将worker脚本放在与代码相同的HTML页面上,从而保存对worker脚本的HTTP请求。 (当然,如果工作脚本是静态的,最好将它保存在一个可由浏览器缓存的单独文件中。)

答案 1 :(得分:1)

没有规范声明您必须引用javascript源。

http://www.w3.org/TR/workers/#worker

“Worker(scriptURL)”是指定的唯一选项。