网络工作者
Web worker 是在后台线程中运行脚本的简单方法,因为工作线程可以在不干扰用户界面的情况下执行任务(包括使用 xmlHttpRequest 的 I / O 任务)。一旦创建,工作人员就可以通过将消息发布到由该代码指定的事件处理程序(而反之亦然),将可以是不同数据类型(函数除外)的消息发送到创建它的 JavaScript 代码。
可以通过几种方式创建工人。
最常见的是来自一个简单的 URL:
var webworker = new Worker("./path/to/webworker.js");
也可以使用 URL.createObjectURL()
从字符串动态创建 Worker:
var workerData = "function someFunction() {}; console.log('More code');";
var blobURL = URL.createObjectURL(new Blob(["(" + workerData + ")"], { type: "text/javascript" }));
var webworker = new Worker(blobURL);
可以将相同的方法与 Function.toString()
结合使用,从现有函数创建工作者:
var workerFn = function() {
console.log("I was run");
};
var blobURL = URL.createObjectURL(new Blob(["(" + workerFn.toString() + ")"], { type: "text/javascript" }));
var webworker = new Worker(blobURL);