worker线程代码如何集成到主线程中调试

一. URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

objectURL = URL.createObjectURL(blob);
在每次调用  createObjectURL()  方法时,都会创建一个新的 URL 对象,即使你已经用相同的对象作为参数创建过。当不再需要这些 URL 对象时,每个对象必须通过调用  URL.revokeObjectURL()  方法来释放。浏览器会在文档退出的时候自动释放它们,但是为了获得最佳性能和内存使用状况,你应该在安全的时机主动释放掉它们。

二.Blob 对象表示一个不可变、原始数据的类文件对象。

要从其他非blob对象和数据构造一个Blob,请使用 Blob() 构造函数。要创建包含另一个blob数据的子集blob,请使用 slice()方法。要获取用户文件系统上的文件对应的Blob对象,请参阅 File文档。

三.FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。

FileReader.abort()中止读取操作。在返回时, readyState属性为 DONEFileReader.readAsArrayBuffer()开始读取指定的  Blob中的内容, 一旦完成, result 属性中保存的将是被读取文件的  ArrayBuffer 数据对象. FileReader.readAsBinaryString()  开始读取指定的 Blob中的内容。一旦完成, result属性中将包含所读取文件的原始二进制数据。 FileReader.readAsDataURL()开始读取指定的 Blob中的内容。一旦完成, result属性中将包含一个 data: URL格式的字符串以表示所读取文件的内容。 FileReader.readAsText()开始读取指定的 Blob中的内容。一旦完成, result属性中将包含一个字符串以表示所读取的文件内容。

so:

var __worker_src__ = function() {
/*子线程需要输入代码*/
onmessage = function( msg) {
console. log( msg. data);
}
postMessage( "ccc");
};
var source = '(' + __worker_src__ + ')()';
var blob = new Blob([ source]);
var worker = new Worker( window. URL. createObjectURL( blob));
worker. onmessage = function( e) {
console. log( e. data)
}

function goWorker() {
worker. postMessage( "bbb");
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值