精确控制js程序执行时间

//遇到问执行耗时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(执行结束);

猜你喜欢

转载自blog.csdn.net/linayangoo/article/details/86352719
今日推荐