我正在尝试使用可转移对象,但在调用webkitPostMessage时遇到“类型错误”。
var message = new Object();
message.type = "mask";
message.mask = mmask;
message.width = width;
message.height = height;
message.useTransferable = transferableObjects;
webWorker[curWorker].webkitPostMessage(message, [message]);
我在工作线程中也遇到了同样的错误。
我错过了什么吗?你需要更多信息吗?
答案 0 :(得分:4)
来自规范:
The following Transferable types exist:
- MessagePort
- ArrayBuffer [TYPEDARRAY]
- CanvasProxy
因此,您现在将数据传输到Web工作人员的选择非常有限。但请查看:
http://updates.html5rocks.com/2012/06/How-to-convert-ArrayBuffer-to-and-from-String
因此,您可以将对象转换为带有window.JSON.parse()
的JSON字符串,然后使用链接中的方法将其更改为数组缓冲区,然后将该数组缓冲区发送给worker。