2009-06-15 73 views
2

我正在构建一个多线程的客户端JavaScript应用程序,我想有一个后台线程拉二进制数据并将其传递给主线程。我知道这可以通过序列化在其他语言中完成,但是如何在javascript中完成此操作?你如何将二进制消息传递给javascript web worker?


我可能把这个应用到一个独立的XULrunner申请下来以进一步提高效率的路线,所以我宁愿去HTML5的“网络工作者”路线与使用Gears。

回答

4

Web Workers postMessage API需要一个JavaScript对象。 Mozilla的Using web workers单证说:

可以安全地进出使用的postMessage()方法 工人 对象;对象在内部自动转换为JSON 。

因此,您可以使用任何支持或可以转换为二进制数据的JavaScript对象。根据其他因素,可能会转换为Base64字符串(请参阅How can you encode to Base64 using Javascript?)或在数字上使用数组。

+2

感谢您的答案!我会给这个答案投票,但是,没有声望这样做呢。 我的印象是,只有字符串被允许,因为它被记录为“消息”,但从你的解释,似乎它可以处理更多。另外,感谢您的链接。 – 2009-06-17 15:48:15

0

您是否愿意使用Google Gears?这正是他们的WorkerPool线程实现的用途。

1

您使用postMessage作为在这里另有说明,但是,对象/数据必须使用atob()传递之前使用base64编码()

相关问题