Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

MessageChannel与土电话

  百度上居然找不到关于MessageChannel的资料让我十分惊讶。还好谷歌上能找到一些资料,而且MSDN、W3C、WHATWG中都有对它的定义。也许是因为火狐不兼容这货,所以MDN中没有MessageChannel的章节,但在IE和Chrome中这个对象确实是可用的。
  MessageChannel其实就是土电话。
  MessageChannel对象有port1和port2两个,他们相当于两个电话筒。 var mc=new MessageChannel;
mc.port1.onmessage=function(e){console.log("port1:"+e.data);};
mc.port2.onmessage=function(e){console.log("port2:"+e.data);};
mc.port1.postMessage("1"); //会在port2的message事件收到
mc.port2.postMessage("2"); //会在port1的message事件收到

  这里只是普及一下这个对象,从目前的项目来看确实没多少实用价值。只要知道有这个东西,要用时能想起它就可以了,我也懒的深入研究。
  其实window对象的postMessage方法和message事件也是MessageChannel,这在之前的文章“postMessage跨域通信”中就用过,只是和真正的MessageChannel有点不同,它是自己发送给自己的。

  参考:
    WHATWG channel-messaging
    MSDN channel-messaging
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^