Arraybuffer,Blob,Base64编码

ArrayBuffer

ArrayBuffer对象表示原始的二进制数据缓冲区,即在内存中分配指定大小的二进制缓冲区(容器),用于存储各类类型化数组的数据,是最基础的原始数据容器,没法直接读取或写入, 须要经过具体视图来读取或写入,即TypedArray对象或DataView对象对内存大小进行读取或写入;css

blob

Blob(binary large object),二进制类文件大对象,是一个能够存储二进制文件的“容器”,HTML5中的Blob对象除了存放二进制数据外还能够设置这个数据的MIME类型。File接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。数组

区别

  • ArrayBuffer的数据,是能够按照字节去操做的,而Blob的只能做为一个整的对象去处理。因此说,ArrayBuffer相比Blob更接近真实的二进制,更底层。
  • Blob和ArrayBuffer都能存储二进制数据。Blob相对而言储存的二进制数据大(如File文件对象)。
  • ArrayBuffer是原始的二进制数据缓冲区,不能设置MIME类型;Blob能够储存大量的二进制编码格式的数据,能够设置对象的MIME类型。

MIME 类型

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。服务器

MIME 消息能包含文本、图像、音频、视频以及其余应用程序专用的数据。网络

Base64编码

咱们知道,咱们所看到的网页上的每个图片,都是须要消耗一个 http 请求下载而来的(全部才有了 csssprites 技术的应运而生,可是 csssprites 有自身的局限性,下文会提到)。
没错,无论如何,图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,而能够随着 HTML 的下载同时下载到本地那就太好了,而 base64 正好能解决这个问题。
虽然能直接显示图片,然而,与之同时付出的代价则是 CSS 文件体积的增大。编码

<img src="data:image/gif;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAAP///yH5B…EoqQqJKAIBaQOVKHAXr3t7txgBjboSvB8EpLoFZywOAo3LFE5lYs/QW9LT1TRk1V7S2xYJADs=">

Base64编码规则

Base64是网络上最多见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

  • ①.把3个字符变成4个字符。
  • ②每76个字符加一个换行符。
  • ③.最后的结束符也要处理。
转码过程例子:
    3*8=4*6
    内存1个字节占8位
    转前: s 1 3
    先转成ascii:对应 115 49 51
    2进制: 01110011 00110001 00110011
    6个一组(4组) 011100110011000100110011
    而后才有后面的 011100 110011 000100 110011
    而后计算机一个字节占8位,不够就自动补两个高位0了
    因此有了高位补0
    科学计算器输入 00011100 00110011 00000100 00110011
    获得 28 51 4 51
    查对下照表 c z E z
相关文章
相关标签/搜索