Open liujiusheng opened 6 years ago
为什么node.js读取文件后使用binar格式返回数据时前端的createObjectURL可以直接解析,也可通过new window.Blob转换后再解析。为什么这种情况下前端先用Uint8Array处理数据后再给Blob会出问题? 后端node.js不使用binar格式,不设置返回格式时前端也会出现如上的问题。
Binary large Object,所以,blob就是binary, createObjectURL接受的参数就是一个blob
二进制大对象,所以二进制再转换为二进制它还是二进制,数据并没有改变,所以用了new Blob()转换和没转换效果一样。
node.js读取文件时,readFileSync()方法若不规定返回数据类型,则默认传入null,返回的数据为buffer,buffer也就是二进制,与传入binar一样。
8位无符号整数数组,也就是说在二进制情况下以8位代表一个数,如11111111,Uint8Array的范围为 0 ~ 256。
则表示带符号的8位二进制整数数组,范围为-128~127。
其它以此类推。
buffer代表一个二进制的数流,可以以任意方式切割。比如切割成Uint8Array.
传统上,服务器通过 AJAX 操作只能返回文本数据,即responseType属性默认为text。XMLHttpRequest第二版XHR2允许服务器返回二进制数据,这时分成两种情况。如果明确知道返回的二进制数据类型,可以把返回类型(responseType)设为arraybuffer;如果不知道,就设为blob。(参考的这里)
如果是值类型,值不可变.如果是引用类型,地址不可变。所以不能用const类型来实现深度复制一个对象,它们还是调用的同一个对象。
二进制流,不知道下载文件类型
为什么node.js读取文件后使用binar格式返回数据时前端的createObjectURL可以直接解析,也可通过new window.Blob转换后再解析。为什么这种情况下前端先用Uint8Array处理数据后再给Blob会出问题? 后端node.js不使用binar格式,不设置返回格式时前端也会出现如上的问题。
blob
Binary large Object,所以,blob就是binary, createObjectURL接受的参数就是一个blob
blob中文名
二进制大对象,所以二进制再转换为二进制它还是二进制,数据并没有改变,所以用了new Blob()转换和没转换效果一样。
node.js读取文件时,readFileSync()方法若不规定返回数据类型,则默认传入null,返回的数据为buffer,buffer也就是二进制,与传入binar一样。
Uint8Array
8位无符号整数数组,也就是说在二进制情况下以8位代表一个数,如11111111,Uint8Array的范围为 0 ~ 256。
Int8Array
则表示带符号的8位二进制整数数组,范围为-128~127。
其它以此类推。
buffer代表一个二进制的数流,可以以任意方式切割。比如切割成Uint8Array.
传统上,服务器通过 AJAX 操作只能返回文本数据,即responseType属性默认为text。XMLHttpRequest第二版XHR2允许服务器返回二进制数据,这时分成两种情况。如果明确知道返回的二进制数据类型,可以把返回类型(responseType)设为arraybuffer;如果不知道,就设为blob。(参考的这里)
ES6中const的特性
如果是值类型,值不可变.如果是引用类型,地址不可变。所以不能用const类型来实现深度复制一个对象,它们还是调用的同一个对象。
application/octet-stream
二进制流,不知道下载文件类型