在内部,Firefox将JSON编码通过postMessage传入和传出Web Worker的对象。但是,这只适用于火狐(3.6+)的Trunk版本,而不适用于Firefox 3.5,所以问题在于如何将此操作的后向支持添加到当前平台。 window.atob()和window.btoa()方法之前已经被提出过,但是这些对于线程来说是内部不可用的,因为它们无法访问DOM。如何在Web Worker中对Object进行编码以使其通过postMessage传递?
Mozilla公司在其开发人员wiki上公开声明这一点,但社区中的许多人已经注意到这种情况。检查ejohn的博客测试:http://ejohn.org/files/bugs/postMessage/
我已经验证,这是这种情况,以及在3.5,它只传递字符串,并在3.6是传递对象。
凡被它说,它不工作,在FF 3.5? Mozilla在这里说(https://developer.mozilla.org/En/Using_web_workers)这些例子适用于FF 3.5,并且它在内部将消息编码为JSON。另外:为什么你需要关心内部转换,接收到消息的时候得到的是一个JS对象,毕竟不是吗? – Fabian 2009-09-09 21:48:22
原始帖子已更新,也请在评论中查看此博文。 http://ejohn.org/blog/web-workers/ – 2009-09-09 23:01:21