雖然說 Web Worker 的上下文和 window 是不一樣的,可是除了不能在 Worker (子線程)中操做 DOM 元素和 使用 window 對象的某些方法和屬性以外,其實能夠在 Worker 中運行任何 JavaScript 代碼。html
你能夠在這裏查看對應兩種不一樣上下文有哪些屬性和方法。本篇暫完。函數
該做用域是後續專項 Worker 做用域實現的接口,意思就是這個做用域裏有的屬性和方法後續的兩個做用域也一樣擁有。post
這裏列舉經常使用屬性,以及屬性做用。 navigator
和 location
:這兩個屬性和 window 下對應的對象的子集。固然還有咱們必定會用到的 console
屬性,此類方法都只是可讀屬性。fetch
close
方法關閉當前 Worker。 importScript
能夠在 Worker 的做用域中引用其餘的腳本。 固然還存在從別處實現的方法,經常使用的有:setInterval
clearInterval
setTimeout
clearTimeout
fetch
。線程
含有 WorkGlobalScope 全部屬性以外,自身多了一個 name 屬性來標記當前的 Worker,其做用是方便用戶在 debugger 期間查找方便。debug
經常使用是的 onmessage
處理函數,其做用是監聽主線程的 message
事件,當主線程發起一個 message
事件,對象子線程能夠接收到對應的信息。code
postMessage
方法做用就是主線程和子線程之間發送信息的函數。htm
自身多了一個 name 屬性來標記當前的 Worker,其做用是方便用戶在 debugger 期間查找方便。對象
經常使用是的 onconnect
處理函數,其做用是監聽主線程的 connect
事件,當主線程中的 MessagePort 對象發起鏈接的時候,sharedWorker就和主線程創建聯繫了。接口
以上就是對應 Web Worker 對應經常使用語法的簡單介紹了,可是其中依舊存在問題,爲何 sharedWorker 中必定要讓其 port 對象去發起通訊呢?以及 MessagePort 對象是什麼狀況纔會出現的機制哩