美文网首页
h5多线程

h5多线程

作者: 嘬烟盒的程序员 | 来源:发表于2016-12-15 01:26 被阅读0次

html5 多线程
ajax是单线程
主线程:主要是DOM 改动 css渲染 js 特效
子线程 :计算
创建子线程
var oW = new Worker('a.js');
oW.postMessage(值);
this.onmessage = function(ev){
console.log(ev.data);
};
this 子线程的全局对象
注意事情:
1.注意 不需要名字 oW.postMessage(值);
2.
子线程不能使用 DOM BOM
3. 不能跨域
4.子线程不能有子线程
5.子线程 和主线程 数据不共享,子线程就是子线程的值,主线程就是主线程的值
多线程好处
1.子线程计算不会阻塞主线程
2.充分利用cpu

现在就写一个兔子序列的例子来说明一切:

<script>
function fib(n){
if(n==1||n==2){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
document.addEventListener('DOMContentLoaded',function(){
var oBtn1 = document.getElementById('btn1');
var oBtn2 = document.getElementById('btn2');
var oBtn3 = document.getElementById('btn3');
var oBtn4 = document.getElementById('btn4');
var oW;
oBtn1.onclick = function(){
alert(fib(48));
};
oBtn2.onclick = function(){
oW = new Worker('fib.js');
oW.postMessage(48);
oW.onmessage = function(ev){
alert(ev.data);
};
};
oBtn3.onclick = function(){
oW.terminate();
};
oBtn4.onclick = function(){
alert('点击了');
};
},false);
</script>
</head>
<body>
<input type="button" value="主线程计算" id="btn1">
<input type="button" value="子线程计算" id="btn2">
<input type="button" value="中断" id="btn3">
<input type="button" value="测试" id="btn4">
</body>
</html>

fib.js

function fib(n){
      if(n==1||n==2){
            return 1;
      }else{
            return fib(n-1)+fib(n-2);
      }
}
this.onmessage = function(ev){
      this.postMessage(fib(ev.data));
};

相关文章

  • h5多线程

    html5 多线程ajax是单线程主线程:主要是DOM 改动 css渲染 js 特效子线程 :计算创建子线程var...

  • JS运行机制

    JS本身是单线程语言,在h5中通过Web-Worker实现多线程,其本身只是一种模拟的手段,纸老虎。 js...

  • h5新增元素&废弃元素

    h5新增元素 h5新增表单元素 h5废弃元素

  • iOS多线程 NSOperation

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程 pthread、NSThread

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程: GCD

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程运用

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程基础

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • h5中秋节小游戏插画

    h5活动链接:http://www.cwaza.com/h5/xhyst/h5/dist/#/

  • h5多线程 Web Worker 使用教程

    一、概述 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。...

网友评论

      本文标题:h5多线程

      本文链接:https://www.haomeiwen.com/subject/tqpwmttx.html