admin 管理员组

文章数量: 887629

Blob、

一、Blob

一个Blob对象就是一个包含有只读原始数据的类文件对象.Blob对象中的数据并不一定得是JavaScript中的原生形式.File接口基于Blob,继承了Blob的功能,并且扩展支持了用户计算机上的本地文件.

创建Blob对象的方法有几种,可以调用Blob构造函数,还可以使用一个已有Blob对象上的slice()方法切出另一个Blob对象,还可以调用canvas对象上的toBlob方法.

注: 需要注意的是,一些浏览器上的 slice()方法仍带有前缀:Firefox 12之前的版本上为 blob.mozSlice(),Safari上为 blob.webkitSlice(). 注: 一些浏览器提供了 BlobBuilder接口,但并不是所有的浏览器都支持 BlobBuilder,而且现有的 BlobBuilder实现都是带前缀的.更主要的是 BlobBuilder已经被废弃,你应该尽可能的使用 Blob构造函数来代替.

属性

属性名     类型 描述
size       unsigned long longBlob对象中所包含数据的大小. 只读.
typeDOMString一个字符串,表明该Blob对象所包含数据的MIME类型.如果类型未知,则该值为空字符串. 只读.

构造函数

Blob Blob([optional] Array parts,[optional] BlobPropertyBag properties
);
参数
parts
一个数组,包含了将要添加到 Blob对象中的数据.数组元素可以是任意多个的 ArrayBuffer,ArrayBufferView (typed array),  Blob,或者  DOMString对象.
properties
一个对象,设置 Blob对象的一些属性.查看 BlobPropertyBag一节.

BlobPropertyBag

一个包含有两个属性typeendings的对象.

type
设置该 Blob对象的 type属性.
endings(已废弃)
对应于 BlobBuilder.append()方法的 endings参数.该参数的值可以是"transparent"或者"native".

Blob构造函数用法举例

var aFileParts = ["<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>"];
var oMyBlob = new Blob(aFileParts, { "type" : "text\/xml" }); // the blob

等价于:

var oBuilder = new BlobBuilder();
var aFileParts = ["<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>"];
oBuilder.append(aFileParts[0]);
var oMyBlob = oBuilder.getBlob("text\/xml"); // the blob

BlobBuilder接口提供了另外一种创建Blob对象的方式,但该方式现在已经废弃,所以不应该再使用了.

例子:使用类型数组和Blob对象创建一个对象URL

var typedArray = GetTheTypedArraySomehow();
var blob = new Blob([typedArray], {type: "application/octet-binary"}); // 传入一个合适的MIME类型
var url = URL.createObjectURL(blob);
// 会产生一个类似blob:d3958f5c-0777-0845-9dcf-2cb28783acaf这样的URL字符串
// 你可以像使用一个普通URL那样使用它,比如用在img.src上.

文章来源:


二、ArrayBuffer

概述

ArrayBuffer (缓冲数组)是一种用于呈现通用、固定长度的二进制数据的类型。不能直接构造并填充 ArrayBuffer 的内容,而应该先创建一个 ArrayBufferView 对象,该对象用具体的格式来呈现 ArrayBuffer 的内容,你可以使用此对象来读写 ArrayBuffer 的内容。

方法概要

ArrayBuffer ArrayBuffer(unsigned long length);

属性

属性 类型 描述
byteLengthunsigned long此数组的大小(以 bytes 作为单位)当数组被创建时,此属性的值就确定了。只读。

方法

ArrayBuffer()

构造方法接收一个数字参数,作为新数组的长度,返回新创建的 ArrayBuffer 对象。

ArrayBuffer ArrayBuffer(unsigned long length
);
参数
length
要创建的数组的大小。
返回值

新创建的 ArrayBuffer 对象,该对象具有 length 的大小,所有位置均被初始化为 0。

文章来源:

三、Uint8Array


Type Size Description Equivalent C type
Int8Array18-bit twos complement signed integersigned char
Uint8Array18-bit unsigned integerunsigned char
Int16Array216-bit twos complement signed integershort
Uint16Array216-bit unsigned integerunsigned short
Int32Array432-bit twos complement signed integerint
Uint32Array432-bit unsigned integerunsigned int
Float32Array432-bit IEEE floating point numberfloat
Float64Array864-bit IEEE floating point numberdouble
构造函数
Uint8Array Uint8Array(ArrayBuffer buffer,optional unsigned long byteOffset,optional unsigned long length
);

Getting an Uint8Array from existing data(From an ArrayBuffer)

var myArray = new Uint8Array(myArrayBuffer);                 





本文标签: Blob