JS Framework APIs
Updated time: 14/06/2017
BroadcastChannel v0.9+
BroadcastChannel API
是 Weex 实例间通信的解决方案。
参考
API
postMessage(message)
: 通过消息通道发送特定消息给其他 BroadcastChannel 对象。close
: 关闭 BroadcastChannel 对象,以便垃圾回收。onmessage
: Event 处理函数, 当 BroadcastChannel 对象接收到消息时触发。
使用
1 | const Stack = new BroadcastChannel('Avengers') |
运行以上代码,Stack 可以从 Hulk 接收消息。
注意
需要注意的是: message
如果是一个对象,该对象不会深拷贝。
参考以下例子1
2
3
4
5
6
7
8
9
10const a = new BroadcastChannel('app')
const b = new BroadcastChannel('app')
const message = {
lists: ['A', 'B']
}
a.onmessage = function (event) {
// in this case, event.data is a reference of message
console.assert(event.data === message)
}
b.postMessage(message)
在这个例子中,event.data
全等于 message
。
与深拷贝相比,这种方式能够提高效率并减少内存消耗。但是,不建议开发者在使用时缓存或修改事件对象 (所有类型的事件处理程序都应该有此限制)。