Grundsätzlich wird ArrayBuffer verwendet, um Binärdaten zu speichern. Dies können beispielsweise die Binärdaten eines Bildes sein.
In anderen Sprachen haben sich Puffer als sehr nützlich erwiesen. Ja, natürlich ist es wenig schwierig zu verstehen / zu verwenden als andere Datentypen.
ArrayBuffer kann verwendet werden, um Daten von JPG-Bildern (RGB-Bytes) abzurufen und daraus ein PNG zu erzeugen, indem Alpha-Bytes (dh RGBA) hinzugefügt werden.
Die Mozilla-Site hat ArrayBuffer hier nur in geringem Umfang verwendet
Arbeiten mit komplexen Datenstrukturen
Durch Kombinieren eines einzelnen Puffers mit mehreren Ansichten unterschiedlicher Typen, beginnend mit unterschiedlichen Offsets im Puffer, können Sie mit Datenobjekten interagieren, die mehrere Datentypen enthalten. Auf diese Weise können Sie beispielsweise mit komplexen Datenstrukturen aus WebGL , Datendateien oder C-Strukturen interagieren , die Sie bei der Verwendung von js-ctypes verwenden müssen .
Betrachten Sie diese C-Struktur:
struct someStruct {
unsigned long id;
char username[16];
float amountDue;
};
Sie können auf einen Puffer zugreifen, der Daten in diesem Format enthält:
var buffer = new ArrayBuffer(24);
var idView = new Uint32Array(buffer, 0, 1);
var usernameView = new Uint8Array(buffer, 4, 16);
var amountDueView = new Float32Array(buffer, 20, 1);
Dann können Sie beispielsweise auf den fälligen Betrag mit zugreifen
amountDueView[0].
Hinweis: Die Ausrichtung der Datenstruktur in einer C-Struktur ist plattformabhängig. Treffen Sie Vorsichtsmaßnahmen und Überlegungen für diese Polsterungsunterschiede.