您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页HTML5 : worker API

HTML5 : worker API

来源:暴趣科技网
worker 是异步操作的API
worker文件必须和主文件满足同源策略
worker 和主线程之间的通信
postMessage(n)方法
message事件
雇主(index.html) 向工人发出任务数据
var worker = new Worker('./worker.js');
//给worker发送数据
worker.postMessage(12)
复制代码
工人(worker.js) 接受任务数据
onmessage = function(e){
    console.log(e.data);//12
}
复制代码
工人处理index发过来的数据
onmessage = function(e){
    postMessage(deal(e.data));
}
function deal(data){
    return data * data;
}
复制代码
雇主监听工人返回的数据并使用
var worker = new Worker('./worker.js');
worker.postMessage(12)
worker.onmessage = function (e){
    console.log(e.data);//144
}
复制代码
结束一个worker
close()在worker作用域中调用(worker.js)-->辞职
terminate()在worker对象上调用(主进程的worker对象上worker.terminate)-->解雇
close() 辞职,自己不干了
//worker.js
onmessage = function(e){
    postMessage(deal(e.data));
    //取消worker
    close();
}
function deal(data){
    return data * data;
}
//index.html
var worker = new Worker('./worker.js');
worker.postMessage(12)
worker.onmessage = function (e){
    console.log(e.data);
    worker.postMessage(24)//不执行
}
复制代码
terminate()解雇,被炒鱿鱼
//index.html
var worker = new Worker('./worker.js');
worker.postMessage(12)
worker.onmessage = function (e){
    console.log(e.data);
    //取消worker
    worker.terminate();
    worker.postMessage(24);//不执行
}
复制代码
其他特性(兼容性较低不建议使用)
1.importScripts('./math1.js','math2.js')
worker只是window的子集,只能实现部分功能,不能获得到windowdocument,所有这里不要引入jqueryzepto。可以引入一些计算类的库。
2.作用域globalWorkerScope
   i.可以继续生产worker对象(Chrome暂时还不支持,浏览器支持情况不好)
   ii.navigator
   iii.XMLHttpRequest
   iiii.setTimeout/setInterval

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务