//遇到问执行耗时js
//精确控制执行时长
console.time("count1"); //计时开始
var start = new Date().getTime();
do{
var end = new Date().getTime();
}while(end-start<=2000);
console.timeEnd("count1");//计时结束
postMessage("执行结束");//worker线程向UI发送数据
chrom:中线程模型:请求资源线程—多个
运行js代码,渲染页面内容-1个
<button>按钮1</button>
<script src=”1.js”></script>
<button>按钮2</button>
解决方案:
1.将执行耗时的js程序放在底部进行执行
2.创建一个并发新线程,让它来执行耗时js任务。
代码:
//var w1=new Worker(参数运行js地址);
<script>
var w1=new Worker("**.js");
</script>
#浏览器不允许Worker线程中操作(代码)不能有任何DOM和BOM对象.
原因:浏览器只允许UI线程操作DOM/BOM,若多个线程同时来操作DOM和BOM页面混乱.所以类似JQUERY也不能使用Worker中.
(1)UI线程发送数据给Worker
woker(收)
onmessage = function(e){e.data}
ui(发)
var w6 = new Worker(“6.js”);
w6.postMessage(stringmsg);
(2)Worker线程发送数据UI
UI(收数据)
var w6 = new Woker(“6.js”);
w6.onmessage = function(e){
e.data..
}
Woker(发数据)
postMessage(执行结束);