了解什麼是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)
}