我有一个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压缩之前,数据需要采用何种格式(即csv
,json
,xml
),以便此方法可以正确使用它?
我已经玩过了,如果我JSON.stringify
Float32Array
并将内容放在文件中,然后将其加载,它就可以正常工作了。但是,要将所有未压缩的数据加载到JavaScript数组中,在将其所有内容复制回新文件进行压缩之前是不可行的。所以我真的在寻找另一种方法(假设这种文件格式是唯一受支持的)。