遅いかもしれませんし、それが原因かもしれませんが、私はArrayBufferのドキュメントを読んだだけで、本当に役立つことは1つも考えられません。
誰かが私を啓発できますか?
画像を使わずに誰もが思いつく用途はありますか?
遅いかもしれませんし、それが原因かもしれませんが、私はArrayBufferのドキュメントを読んだだけで、本当に役立つことは1つも考えられません。
誰かが私を啓発できますか?
画像を使わずに誰もが思いつく用途はありますか?
基本的に、ArrayBufferはバイナリデータを保持するために使用されます。たとえば、画像のバイナリデータにすることができます。
他の言語では、バッファは非常に便利であることが証明されています。はい、もちろん、他のデータ型よりも理解/使用するのは少し難しいです。
ArrayBufferを使用して、jpg画像(RGBバイト)のデータを取得し、アルファバイト(つまりRGBA)を追加することでそこからpngを生成できます。
Mozillaサイトでは、ここでArrayBufferを少し使用しています。
複雑なデータ構造の操作
単一のバッファーをさまざまなタイプの複数のビューと組み合わせて、バッファーへのさまざまなオフセットから開始することにより、複数のデータ型を含むデータオブジェクトを操作できます。これにより、たとえば、js-ctypesの使用中に使用する必要のあるWebGL 、データファイル、またはC構造体の複雑なデータ構造体を操作できます。
このC構造を考えてみましょう。
struct someStruct { unsigned long id; char username[16]; float amountDue; };
次のような形式のデータを含むバッファにアクセスできます。
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);
次に、たとえば、で支払うべき金額にアクセスできます
amountDueView[0]
。注: C構造体のデータ構造体の配置は、プラットフォームに依存します。これらのパディングの違いについては、予防措置と考慮事項を考慮してください。
AnArrayBuffer
は、RAM内のバイナリデータのチャンクです。ArrayBuffer
読み取りと書き込みのためにを「開く」には、いくつかの方法があります。
画像以外にも、UDPなどのプロトコルで使用される低レベルのネットワークデータパケットを正確に構築および破棄するのに役立ちます。