ArrayBuffer对象表示原始的二进制数据缓冲区,即在内存中分配指定大小的二进制缓冲区(容器),用于存储各类类型化数组的数据,是最基础的原始数据容器,没法直接读取或写入, 须要经过具体视图来读取或写入,即TypedArray对象或DataView对象对内存大小进行读取或写入;css
Blob(binary large object),二进制类文件大对象,是一个能够存储二进制文件的“容器”,HTML5中的Blob对象除了存放二进制数据外还能够设置这个数据的MIME类型。File接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。数组
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。服务器
MIME 消息能包含文本、图像、音频、视频以及其余应用程序专用的数据。网络
咱们知道,咱们所看到的网页上的每个图片,都是须要消耗一个 http 请求下载而来的(全部才有了 csssprites 技术的应运而生,可是 csssprites 有自身的局限性,下文会提到)。
没错,无论如何,图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,而能够随着 HTML 的下载同时下载到本地那就太好了,而 base64 正好能解决这个问题。
虽然能直接显示图片,然而,与之同时付出的代价则是 CSS 文件体积的增大。编码
<img src="data:image/gif;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAAP///yH5B…EoqQqJKAIBaQOVKHAXr3t7txgBjboSvB8EpLoFZywOAo3LFE5lYs/QW9LT1TRk1V7S2xYJADs=">
Base64是网络上最多见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
转码过程例子: 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