Par exemple, j'ai demandé une donnée binaire 0001001000111100 via la méthode XMLHttpRequest()
var oReq = new XMLHttpRequest();
oReq.responseType = "arraybuffer";
var resp = oReq.open("GET",url,true)
oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response;
}
Alors, comment puis-je faire fonctionner cet Arraybuffer ? Je sais que le tableau correspondant peut être obtenu via différentes vues
Par exemple
var responseArray = new Uint8Array(arrayBuffer);
console.log(responseArray)
//输出Uint8Array(2) [18, 60]
Alors, lorsque ce arraybuffer est très, très volumineux, que devez-vous faire si vous souhaitez en extraire les informations qu'il contient ? Une fois le arraybuffer
de 4 Mo généré via Uint8Array, le tableau aura également une longueur de 410001000/8 = 500 000. .
Par exemple, je souhaite remplir des données à certaines positions du arraybuffer. . Alors que faut-il faire ?
Serait-il possible d'utiliser une vue comme Uint8Array pour construire un nouveau tableau ?
arraybuffer ne peut pas être utilisé directement et n'est accessible que via DataView ou typedArray. Si vous devez modifier certains bits de données, vous devez d'abord connaître le décalage des données par rapport au arrayBuffer, via dataview.setInt8(byteOffset, value); ou typedArray[ .] à modifier.