網路工作者
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);