Newly available 主要ブラウザの最新版で対応済み。古いブラウザが対象外なら使用可能。

概要

ArrayBuffer.prototype.transfer() はバッファの所有権を新しい ArrayBuffer に移転します。元のバッファは切り離され、ゼロコピーでの効率的なデータ受け渡しが可能です。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
114
114
122
17.4
114
17.4
ビルトインオブジェクト

transfer() は ArrayBuffer インスタンスのメソッドで、このバッファと同じバイト内容を持つ新しい ArrayBuffer を作成し、その後でこのバッファを分離します。

114
114
122
17.4
114
17.4

transferToFixedLength() は ArrayBuffer インスタンスのメソッドで、このバッファと同じバイト内容を持つサイズ変更不可能な新しい ArrayBuffer を作成し、その後でこのバッファを分離します。

114
114
122
17.4
114
17.4
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

JAVASCRIPT
const buf = new ArrayBuffer(1024);
const transferred = buf.transfer();

buf.byteLength;         // 0 (already detached)
transferred.byteLength; // 1024

ライブデモ

Check transfer support

Inspect whether ArrayBuffer.prototype.transfer exists.

JavaScript
出力
「実行」ボタンを押してください

Transfer a buffer when supported

Move the contents into a new buffer without manual copying.

JavaScript
出力
「実行」ボタンを押してください

Transfer to a fixed size

Use transferToFixedLength when the runtime exposes the helper.

JavaScript
出力
「実行」ボタンを押してください

実務での使いどころ

  • Transferable ArrayBuffer の活用

    ArrayBuffer の所有権を移転する仕組み。transfer() でゼロコピーのデータ受け渡しを実現。

注意点

  • 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。

Powered by web-features