Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:Web工作者和类型化数组_Javascript_Json_Web Worker_Typed Arrays - Fatal编程技术网

JavaScript:Web工作者和类型化数组

JavaScript:Web工作者和类型化数组,javascript,json,web-worker,typed-arrays,Javascript,Json,Web Worker,Typed Arrays,我有一个web工作程序(以new worker()开始),它执行一些处理,应该返回Float32Array 然而,在workerpostMessage()s处理完数据之后,它似乎经历了对JSON的序列化和理想化,当接收到消息时,我得到的是一个普通的javascriptArray(具有原始类型数组所具有的所有属性) 一个简单的解决方法是从javascript数组中重新创建类型化数组,但这是浪费时间和内存的 有更好的方法吗?有什么方法可以告诉JSON反序列化实例化Float32Array而不是jav

我有一个web工作程序(以
new worker()
开始),它执行一些处理,应该返回
Float32Array

然而,在worker
postMessage()
s处理完数据之后,它似乎经历了对JSON的序列化和理想化,当接收到消息时,我得到的是一个普通的javascript
Array
(具有原始类型数组所具有的所有属性)

一个简单的解决方法是从javascript数组中重新创建类型化数组,但这是浪费时间和内存的


有更好的方法吗?有什么方法可以告诉JSON反序列化实例化
Float32Array
而不是javascript数组?或者以其他方式传输二进制数据?

更新:目前这似乎是一个Chrome错误:


类型化数组保存在Firefox 4中。

所有支持Worker(IE10除外)的浏览器都支持所谓的可转移对象,这意味着如果您有数组缓冲区(即使用类型化数组的.buffer属性)作为postMessage的第二个参数,您可以包含要将所有权转移回的数组缓冲区列表。这比复制要快得多

解决的问题: