/

ArrayBuffer

ArrayBuffer

了解什麼是ArrayBuffer以及如何使用它

就像Blob是對磁碟上可用數據的不透明表示一樣,ArrayBuffer是對內存中可用位元組的不透明表示。

構造函數接受一個參數,即以位元組為單位的長度:

1
const buffer = new ArrayBuffer(64)

ArrayBuffer有一個(只讀)屬性:byteLength,正如其名,表示其長度以位元組為單位。

它還提供了一個slice()實例方法,從現有ArrayBuffer中創建新的ArrayBuffer,接受一個起始位置和一個可選的長度:

1
2
const buffer = new ArrayBuffer(64)
const newBuffer = buffer.slice(32, 8)

通過ArrayBuffer從互聯網下載數據

我們可以使用XHR從互聯網下載blob,並將其存儲到ArrayBuffer中:

1
2
3
4
5
6
7
8
9
10
11
const downloadBlob = (url, callback) => {
const xhr = new XMLHttpRequest()
xhr.open('GET', url)
xhr.responseType = 'arraybuffer'

xhr.onload = () => {
callback(xhr.response)
}

xhr.send(null)
}

tags: [“ArrayBuffer”, “XHR”, “blob”]