//遇到問執行耗時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(執行結束);