로컬 바이너리 파일을 UInt8Array에 빨리 읽는 방법. 아래 코드에서자바 스크립트가 로컬 파일을 UInt8Array에 빨리 읽음
function readAllBytesAsUInt8Array(path) {
var req = new XMLHttpRequest();
req.open("GET", path, false);
req.overrideMimeType("text/plain; charset=binary-data");
req.send(null);
if (req.status !== 200) {
console.log("error");
return null;
}
var text = req.responseText;
var resultArray = new Uint8Array(text.length);
for(var i = 0; i < text.length;i++){
resultArray[i] = (text[i].charCodeAt() & 255) & 255;
}
return resultArray.buffer;
}
var text = req.responseText;
이
var resultArray = new Uint8Array(text.length);
for(var i = 0; i < text.length;i++){
resultArray[i] = (text[i].charCodeAt() & 255) & 255;
}
바이너리 파일 50MB의에 대한 10 초 주위에 걸리는 두 번째, 그 사이에이 부분보다 적은 실행, 빠르게 UInt8Array에 바이너리 파일을 읽을 수있는 방법이 있나요 ?
궁금한 점이 있으시면'var resultArray = new Uint8Array (text.length);'가 정말로 필요합니다. ? 자바 스크립트는 배열 크기를 미리 정의 할 것을 요구하지 않습니다. 그냥'resultArray = [];'라고 말하고 채우 듯이 채우십시오. – Dellirium
왜 XMLHttpRequest()의'.responseType'을''arraybuffer''로 설정하지 않습니까? – guest271314
배열마다 매번 누를 때마다 더 느려질 것입니다. – user818117