资讯专栏INFORMATION COLUMN

Arraybuffer,Blob,Base64编码

张春雷 / 1108人阅读

摘要:所以说,相比更接近真实的二进制,更底层。是原始的二进制数据缓冲区,不能设置类型可以储存大量的二进制编码格式的数据,可以设置对象的类型。类型是描述消息内容类型的因特网标准。消息能包含文本图像音频视频以及其他应用程序专用的数据。

ArrayBuffer

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

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 文件体积的增大。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106477.html

相关文章

  • 有趣的 JavaScript 格式转换

    摘要:位无符号整数,长度个字节,溢出处理为最大值。所以你拿到的英文字母编码前后一样的,但是汉字等字符就不同了。为了直接得到汉字的码,使用其实还可以选择使用处理汉字,但是英文又不能正常转换了。 原文链接:https://ssshooter.com/2019-04... 之前做文件上传和 canvas 修图时接触到几个格式,这里打算整理一下他们的关系 Blob 使用 input 获取文件时,你...

    fireflow 评论0 收藏0
  • 前端中的二进制以及相关操作与转换

    摘要:前端中的二进制以及相关操作与转换最近工作中遇到了很多有关二进制的处理,如的生成,多个的打包,音频的拼接。数据输出或者叫数据展示或者下载,数据经二进制处理后可以由表示,然后通过等元素引用或者直接下载。 前端中的二进制以及相关操作与转换 最近工作中遇到了很多有关二进制的处理,如PDF的生成,多个PDF的打包,音频的拼接。为了数据的一致性,以及减少与后端通信的复杂度,工作量都在浏览器端。 浏...

    刘厚水 评论0 收藏0
  • js对文件和二进制操作的一些方法汇总

    摘要:最近接手了一个项目接触到一些对文件操作的业务所以在这边整理一下日常用到的处理方式当学习笔记吧有不对的地方欢迎指正哈首先我们来看一下这个万能的对象就如同它的名字一样就是个文件读取器之所以说它是个万能的对象是因为它可以读取任意格式的内容最近我尝 最近接手了一个项目,接触到一些对文件操作的业务.所以在这边整理一下日常用到的处理方式,当学习笔记吧,有不对的地方,欢迎指正哈 FileReader...

    fjcgreat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<