Fondamentalement, ArrayBuffer est utilisé pour conserver des données binaires. Il peut s'agir des données binaires d'une image par exemple.
Dans d'autres langues, les tampons s'avèrent très utiles. Oui, bien sûr, il est un peu plus difficile à comprendre/utiliser que les autres types de données.
ArrayBuffer peut être utilisé pour obtenir les données d'une image jpg (octets RGB) et en produire un png en ajoutant l'octet alpha (i.e. RGBA).
Le site de Mozilla a donné une petite utilisation de ArrayBuffer aquí
Travailler avec des structures de données complexes
En combinant un seul tampon avec plusieurs vues de différents types, commençant à différents décalages dans la mémoire tampon, vous pouvez interagir avec objets de données contenant plusieurs types de données. Cela vous permet, par exemple par exemple, d'interagir avec des structures de données complexes de WebGL des fichiers de données, ou les structures C que vous devez utiliser lors de l'utilisation js-ctypes .
Considérons cette structure C :
struct someStruct {
unsigned long id;
char username[16];
float amountDue;
};
Vous pouvez accéder à un tampon contenant des données dans ce format de la manière suivante :
var buffer = new ArrayBuffer(24);
// ... read the data into the buffer ...
var idView = new Uint32Array(buffer, 0, 1);
var usernameView = new Uint8Array(buffer, 4, 16);
var amountDueView = new Float32Array(buffer, 20, 1);
Vous pouvez alors accéder, par exemple, au montant dû avec amountDueView[0]
.
Note : Le site alignement des structures de données dans une structure C est dépend de la plate-forme. Prenez des précautions et des considérations pour ces différences de rembourrage.