当前位置: 首页 > news >正文

国外网站大牛不懂英语可以做吗/青岛官网seo方法

国外网站大牛不懂英语可以做吗,青岛官网seo方法,代购网站制作,临沂网站排名引子:(JS单线程) 什么是webworker? Web Worker为Web应用程序提供了一种能在后台中运行的方法。通过Web Worker可以生成多个线程同时运行,并保证页面对用户的及时响应,完全不会影响用户的正常操作。 单线程…

引子:(JS单线程)

什么是webworker?
Web Worker为Web应用程序提供了一种能在后台中运行的方法。通过Web Worker可以生成多个线程同时运行,并保证页面对用户的及时响应,完全不会影响用户的正常操作。

单线程:单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。简单的说就是处理事务的任务链,当只有一条链,所有的事情都在这一条链上执行时,那就是单线程。

优点:单线程较多线程来说,系统稳定、扩展性极强、软件丰富。

缺点:只有一个线程,代码顺序执行,容易出现代码阻塞(页面假死)。

多线程:为Js 提供了多线程处理能力,一些复杂、数据量大的处理时可以让别的线程去处理,处理的同时不影响主线程的执行(简称异步),从而让页面运行更加流畅而且不失效果。

Web主线程:
1.通过 worker = new Worker( url ) 加载一个JS文件来创建一个worker,同时返回一个worker实例。url:  需要异步处理的js文件路径
2.通过 worker.postMessage( data ) 方法来向worker发送数据。data:  要发送的数据
3.绑定 worker.onmessage(value)方法来接收worker发送过来的数据。value:  postMessage发送过来的数据
4.可以使用 worker.terminate() 来终止一个worker的执行。worker子线程:
1.通过postMessage( data ) 方法来向主线程发送数据。
2.绑定onmessage方法来接收主线程发送过来的数据。

代码如下:
1)创建一个Worker:

通常,与web worker相关的代码都放在一个独立的JavaScript文件中。父线程通过在Worker构造函数中指定一个JavaScript文件的链接来创建一个新的worker,它会异步加载并执行这个JavaScript文件。

// var worker = new Worker(子线程路径);
// console.log(worker); //对象 身上有很多数据let worker = new Worker('worker.js'); //创建
worker.postMessage('我是要传递的数据');  //postMessage方法向worker发送数据。

2)编写子线程 worker.js:

this.onmessage = function(ev){console.log(ev.data);  // html页面打印出我是要传递的数据   注:子线程没有alert
};

注意:
1.子线程进行计算,不能进行 DOM BOM操作
2.子线程不能跨域,文件需放在同路径中
3.子线程不能套子线程
4.子线程 不和主线程共享数据,而是复制一份儿 哪怕是对象
子线程可以直接输入运算:

//主线程 html页面
let worker = new Worker('worker1.js');
worker.postMessage(5);
//子线程 worker1.js
this.onmessage = function(ev){
console.log(ev.data+5);    //  10  
};

可以利用子线程为我们做一些计算:

let worker = new Worker('worker2.js');
worker.postMessage(10);  //向子线程发送数据
worker.onmessage = function(ev){ //接收字线程发送过来的数据
console.log(ev.data);  //15
};
//子线程 worker2.js
this.onmessage = function(ev){  //接收主线程发送过来的数据
this.postMessage(ev.data+5);  //向主线程发送数据
};

转载:https://www.cnblogs.com/ljx20180807/p/9815576.html

案例

<!DOCTYPE html>
<html>
<body><p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>
<br /><br /><script>
var w;function startWorker()
{
if(typeof(Worker)!=="undefined")
{if(typeof(w)=="undefined"){w=new Worker("demo_workers.js");}w.onmessage = function (event) {document.getElementById("result").innerHTML=event.data;};
}
else
{
document.getElementById("result").innerHTML="Sorry, your browserdoes not support Web Workers...";
}
}function stopWorker()
{
w.terminate();
}
</script></body>
</html>

demo_workers.js

var i=0;function timedCount()
{
i=i+1;
postMessage(i);
setTimeout("timedCount()",500);
}timedCount();

案例二


<!DOCTYPE html>
<html>
<body><p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>
<br /><br /><script>
let worker = new Worker('./worker.js'); //创建
worker.postMessage('我是要传递的数据');  //postMessage方法向worker发送数据。worker.onmessage = function(ev){ //接收字线程发送过来的数据
console.log(ev.data,'=================----');  //15
};
</script></body>
</html>

worker.js

let that=this
this.onmessage = function(ev){console.log(ev.data,'===========');  // html页面打印出我是要传递的数据   注:子线程没有alertthat.postMessage(ev.data+5);};
http://www.jmfq.cn/news/4919275.html

相关文章:

  • 网站后续建设/有什么平台可以推广
  • 有哪些做批发出口的网站/2023年新闻热点事件
  • seo培训费用/自己怎么优化关键词
  • 做网站个体户执照/谷歌优化推广
  • 中纪委网站两学一做征文/西安网红
  • 河北先进网站建设风格/seo到底是什么
  • 可以和外国人做朋友的网站/竞价推广托管服务
  • 做网站用boot/搜索app下载安装
  • 手机企业网站制作/网站优化提升排名
  • 中央政府网站的建设的意见/百度下载软件
  • 做外贸网站能用虚拟主机吗/中小企业网站优化
  • 大学物流仓储作业代做网站/政府免费培训 面点班
  • 西安最新公告/网站如何做关键词优化
  • 网站开发公司徐州/产品推广计划
  • 南京网站设计制作/常见的网络推广方法有哪些
  • 网站布局策划/怎么做游戏推广员
  • 利用网盘做视频网站/山西网络推广
  • 常用软件开发模型/seo关键词排名优化品牌
  • wordpress汽车模板下载/seo推广人员
  • 动易网站怎么进入后台/市场营销十大经典案例
  • 申请网站步骤/深圳seo博客
  • 做庭院的网站/百度知道app官方下载
  • vps自带ie浏览器不能访问网站/公司网站建设哪家公司好
  • 新网站如何做sem/成功的品牌推广案例分析
  • 网站开发css框架/汕头seo排名公司
  • 怎么搞免费的网站/企业网站定制
  • 高级又小众的公众号/企业网站优化推广
  • 网站快速优化排名/品牌seo推广
  • 给网站做镜像/广州:推动优化防控措施落
  • asp网站 被插入/国际域名注册网站