Sebagai contoh, saya meminta sekeping data binari 0001001000111100 melalui kaedah XMLHttpRequest()
var oReq = new XMLHttpRequest();
oReq.responseType = "arraybuffer";
var resp = oReq.open("GET",url,true)
oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response;
}
Jadi bagaimana saya mengendalikan Arraybuffer ini? Saya tahu tatasusunan yang sepadan boleh diperolehi melalui pandangan yang berbeza
Sebagai contoh
var responseArray = new Uint8Array(arrayBuffer);
console.log(responseArray)
//输出Uint8Array(2) [18, 60]
Jadi apabila arraybuffer ini sangat, sangat besar, apakah yang perlu anda lakukan jika anda ingin mengekstrak maklumat di dalamnya? Selepas 4mb arraybuffer
dikeluarkan melalui Uint8Array, array juga akan mempunyai panjang 410001000/8 = 500,000. .
Sebagai contoh, saya ingin mengisi data ke kedudukan tertentu dalam arraybuffer. . Jadi apa yang perlu dilakukan?
Adakah mungkin untuk menggunakan paparan seperti Uint8Array untuk membina tatasusunan baharu?
arraybuffer tidak boleh dikendalikan secara langsung dan hanya boleh diakses melalui DataView atau typedArray Jika anda perlu mengubah suai bit data tertentu, anda mesti terlebih dahulu mengetahui offset data berbanding arrayBuffer, melalui dataview.setInt8(byteOffset, value); atau typedArray[.] untuk mengubah suai.