SharedWorker对象
2015-09-18 10:02
155 查看
//共享工作线程允许多个页面共享使用,每个页面都是链接到该共享工作线程的某个端口号上。页面通过该端口与共享工作线程进行通信
var myWorker = new SharedWorker("worker.js");//创建SharedWorker对象
worker.port.onmessage=function(event)
{
var result=event.data//获取共享线程返回的数据
alert("计算质数完成"+result);
}
function calculate()
{
worker.port.postMessage(1233);//还是一样的方式,向共享线程发送数据
}
共享线程执行的代码如下:
onconnect=funciton(event)//共享线程通过onconnect,而不是onmessage
{
var port=event.ports[0];
port.onmessage=function(event)
{
var data=evenat.data;//获取主页面数据
var count=cal(data);//计算结果
port.postMessage(count);//返回给主页面
}
}
注意:除了用onmessage来设置消息处理方法以外,还可以使用addEventListener添加消息处理,这样做的好处是可以添加多个事件处理方法。不过这时候需要用port.start()显示启动端口上的通信。如果主页面通过addEventListener来完成事件绑定,那么要通过myworker.port.start()显示启动端口通信
myWorker.port.postMessage([first.value,second.value]);//主页面发送数据
//SharedWorker接受数据
onconnect = function(e) {
var port = e.ports[0];
port.addEventListener('message', function(e) {
var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
port.postMessage(workerResult);
});
port.start(); //用onmessage绑定,必须要显式启动端口通信
}
var myWorker = new SharedWorker("worker.js");//创建SharedWorker对象
worker.port.onmessage=function(event)
{
var result=event.data//获取共享线程返回的数据
alert("计算质数完成"+result);
}
function calculate()
{
worker.port.postMessage(1233);//还是一样的方式,向共享线程发送数据
}
共享线程执行的代码如下:
onconnect=funciton(event)//共享线程通过onconnect,而不是onmessage
{
var port=event.ports[0];
port.onmessage=function(event)
{
var data=evenat.data;//获取主页面数据
var count=cal(data);//计算结果
port.postMessage(count);//返回给主页面
}
}
注意:除了用onmessage来设置消息处理方法以外,还可以使用addEventListener添加消息处理,这样做的好处是可以添加多个事件处理方法。不过这时候需要用port.start()显示启动端口上的通信。如果主页面通过addEventListener来完成事件绑定,那么要通过myworker.port.start()显示启动端口通信
myWorker.port.postMessage([first.value,second.value]);//主页面发送数据
//SharedWorker接受数据
onconnect = function(e) {
var port = e.ports[0];
port.addEventListener('message', function(e) {
var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
port.postMessage(workerResult);
});
port.start(); //用onmessage绑定,必须要显式启动端口通信
}
相关文章推荐
- 将Docker安装到CentOS或Fedora上
- (转)CentoS 下报的 Requires: perl(:MODULE_COMPAT_5.8.8)
- Linux 动态库搜索路径
- iOS9 对ShareSDK的影响(适配iOS 9必读)
- PHP 获取网上文件内容
- GBDT 提升回归树
- 限制<input>输入框不能输入任何东西的html代码是什么
- LeetCode Compare Version Numbers
- MapReduce工作原理
- Socket高性能IO模型浅析
- 情商高就是说话让人舒服
- 升级xcode7之后原有项目无法连网的解决方案
- python可变集合类型方法
- 9.18, 9.18,...流亡三部曲及其诞生背景
- LeetCode Compare Version Numbers
- 遇到问题??
- 【转】Github入门教程
- 一些不错的开发交流网站
- TF-IDF与余弦相似性的应用(三):自动摘要(转)
- Android Tips - 填坑手册