为了实例化一个新的Worker,逻辑如下:
var w = new Worker("demo_workers.js");
demo_workers.js
包含工人将要做的事情的定义。是否有可能避免创建新的.js并将内部函数传递给该构造函数?像
var w = new Worker(
function(){
alert("hey!");
};
);
答案 0 :(得分:2)
您无法使用函数创建worker,因为这会导致许多并发问题。您需要将URL传递给脚本。
但是,您可以使用您在运行时创建的Blob
的网址。 MDN has a great example他们使用同一页面上未评估的<script>
标记的内容创建工作人员。这样,您可以使用worker将worker脚本放在与代码相同的HTML页面上,从而保存对worker脚本的HTTP请求。 (当然,如果工作脚本是静态的,最好将它保存在一个可由浏览器缓存的单独文件中。)
答案 1 :(得分:1)