阮一峰的Web Worker 使用教程
URL.createObjectURL(Blob blob): 用来创建对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。
有个需求是通过直接打开html实现WebWorker,直接打开文件是file://
本地协议的好吗~~🤪
网络加载脚本的方式凉凉了,Worker线程代码得在本地才行,怎么搞?定义个变量,本地URL.createObjectURL()
加载呗🤐
// URL.createObjectURL
window.URL = window.URL || window.webkitURL;
// Worker 线程所要执行的任务
var response = "self.onmessage=function(e){console.log(e.data);postMessage('Worker: '+e.data);}";
var blob;
try {
blob = new Blob([response], {type: 'application/javascript'});
} catch (e) { // Backwards-compatibility
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
blob = new BlobBuilder();
blob.append(response);
blob = blob.getBlob();
}
var worker = new Worker(URL.createObjectURL(blob));
// Test, used in all examples:
worker.onmessage = function(e) {
console.log('Response: ' + e.data);
};
worker.postMessage('Test');
Blob: 适用于Chrome 8 +,Firefox 6 +,Safari 6.0 +,Opera 15+
type: application/javascript 适用于Opera 10.6 - 12