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

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

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

const buffer = new ArrayBuffer(64)

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

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

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

通過ArrayBuffer從互聯網下載數據

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

const downloadBlob = (url, callback) => {
  const xhr = new XMLHttpRequest()
  xhr.open('GET', url)
  xhr.responseType = 'arraybuffer'

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

  xhr.send(null)
}