【发布时间】:2014-05-26 18:46:20
【问题描述】:
我正在编写一个用于访问二进制数据的处理程序。目前我正在这样做:
...
d = new FileReader();
d.onload = function (e) {
var response_buffer, data, byte_len, temp_float;
response_buffer = e.target.result;
data = new DataView(response_buffer);
byte_len = data.byteLength;
// create empty placeholder for binary data received
tmp_data = new Float32Array(byte_len / Float32Array.BYTES_PER_ELEMENT);
len = tmp_data.length;
// Pre-parse
for (i = 0; i < len; i += 1) {
tmp_data[i] = data.getFloat32(i * Float32Array.BYTES_PER_ELEMENT, true);
}
...
这可以正常工作并将我获取的数据(文件/http)“预处理”到我的 tmp_data 数组中。
但是,我还需要能够处理大文件(例如 1GB+)。我的想法是尝试只获取文件的一部分,因为从二进制结构中我可以确切地知道我必须获取哪些偏移量。
问题:
如果我知道偏移量和长度而不是必须获取整个文件,是否可以 XHR 从大文件中获取“范围”字节?
谢谢!
【问题讨论】:
标签: javascript xmlhttprequest offset binary-data arraybuffer