将二进制数据读入JavaScript

时间:2013-09-02 18:34:48

标签: javascript arrays json xmlhttprequest file-format

我有一个WebGL应用程序,它要求我加载大量x,y个顶点数据,但为了最大限度地减少带宽使用,我还要压缩数据(一次性使用) gzip

以下是我将用于加载数据的代码。我想从服务器检索数据并将其直接传递到Float32Array

var xhr = new XMLHttpRequest();
xhr.open('GET', 'array.gz', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(data) {
    console.log("loaded");
    var dataArray = new Float32Array(this.response);

xhr.onprogress = function(e) {
};
xhr.onerror = function(error) {
    console.log('error!');
};
xhr.send();

现在我的问题没有直接链接到代码,而是支持的文件格式。在进行gzip压缩之前,数据需要采用何种格式(即csvjsonxml),以便此方法可以正确使用它?

我已经玩过了,如果我JSON.stringify Float32Array并将内容放在文件中,然后将其加载,它就可以正常工作了。但是,要将所有未压缩的数据加载到JavaScript数组中,在将其所有内容复制回新文件进行压缩之前是不可行的。所以我真的在寻找另一种方法(假设这种文件格式是唯一受支持的)。

0 个答案:

没有答案