網路工作者

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);