添加回调以捕获通过Web worker管道传输的数据时,通常会这样做:
worker.addEventListener("message", function(event) {
var data = event.data;
// Do something with data
...
});
我从未触及任何其他属性,当我将事件对象记录到控制台时,我没有注意到任何有趣的东西。由于Event
对象的创建给消息传输增加了一些开销,我问:
问:关于webworker回调中的Event
对象是否有任何有趣之处,或者我们是否只使用event.data
?
答案 0 :(得分:0)
本例中的事件对象遵循MessageEvents接口,该接口包含以下属性:
数据属性必须返回初始化的值。创建对象时,必须将此属性初始化为null。它代表正在发送的消息。
origin 属性必须返回初始化的值。创建对象时,必须将此属性初始化为空字符串。它在服务器发送的事件和跨文档消息传递中表示发送消息的文档的来源(通常是文档的方案,主机名和端口,但不包括其路径或片段标识符)。
lastEventId 属性必须返回初始化的值。创建对象时,必须将此属性初始化为空字符串。它在服务器发送的事件中表示事件源的最后一个事件ID字符串。
source属性必须返回它初始化的值。创建对象时,必须将此属性初始化为null。它在跨文档消息传递中表示消息来自的Window对象的浏览上下文的WindowProxy。
端口属性必须返回初始化的值。创建对象时,必须将此属性初始化为null。它表示在跨文档消息传递和通道消息传递中发送的MessagePort数组(如果有的话)。
有关详细信息,请参阅规范。