本文根据 Devhints / Web workers 翻译。代码示例及版本范围沿用原文。原文标注更新日期:2017-10-30。
Web Worker 后台线程
客户端
var worker = new Worker('worker.js')
worker.onmessage = function (message) {
alert(JSON.stringify(message.data))
})
worker.postMessage('hello!')
消息可以是任何能够序列化为 JSON 的数据(对象、数组、字符串、数字、布尔值)。请参阅: 结构化克隆(structured clone)
Worker
self.onmessage = function (message) {
···
}
self.postMessage({ msg: 'hello' })
消息数据
[MessageEvent]
bubbles: false
cancelBubble: false
cancelable: false
clipboardData: undefined
currentTarget: Worker
data: "Hello" ← the data
defaultPrevented: false
eventPhase: 0
lastEventId: ""
origin: ""
ports: Array[0]
returnValue: true
source: null
srcElement: Worker
target: Worker
timeStamp: 1344821022383
type: "message"
这些是 message onmessage 事件中的内容。