web-worker 的使用

  JavaScript採用的是單線程模式,它每次也只能執行一個事件,所以它在加載大量的事件的時候會比較慢。

而web-worker的作用就是給JavaScript提供一個多線程的模式。

  注意的是

    web-worker是無法操作DOM的節點的,它不能再主線程中調用的子線程中的函數,並且只能使用原生js進行編寫。

    還有web-worker我在網上看見說是在部分瀏覽器裏面是無效的,我在電腦上Google及Safari(電腦上僅有這兩個瀏覽器╮( ̄▽ ̄)╭)上面測試了一下是沒有問題的。

web-worker的使用

  創建主線程

    使用new來創建一個worker的函數,

var worker = new Worker("./work.js")

    然後使用worker.postMessage('...')向子線程方式數據

    接收子線程的數據

worker.onmessage = function(){
    console.log(event.data)
}

  子線程

    在主線程中想子線程發佈的數據使用

onmessage =function (event){
    var mar_skt = event.data;   //通過event.data獲得發送來的數據
    console.log(mar_skt);       //打印數據
}

    然後在使用postMessage向主線程發生在子線程內容執行完畢的內容

postMessage(data)

  在不想要worker的時候也可以直接使用terminate()來結束它

worker.terminate();

  

原文出處:https://www.cnblogs.com/nixu/p/10595747.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章