什么是ArrayBuffer以及如何使用它

269 阅读1分钟

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

就像Blob是磁盘上可用数据的不透明表示一样,ArrayBuffer是内存中可用字节的不透明表示.

构造函数需要一个参数,即以字节为单位的长度。

const buffer = new ArrayBuffer(64)

一个ArrayBuffer值有一个(只读)属性。byteLength顾名思义,它以字节为单位表示其长度。

它还提供了一个slice() 实例方法,从一个现有的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)
}