浏览器中下载的一些总结
通过 http
请求返回的 json
数据,如何下载到本地作为调试的 mock
数据?
二进制文件等部分涉及
浏览器中的下载一般都会涉及到二进制,浏览器中常见的二进制以及特殊的数据相关的用的最多Blob,DataURL,Base64 ,ObjectURL
Blob
是浏览器端的类文件对象,存储着二进制的数据,其接受两个参数,第一个参数,array
是一个由ArrayBuffer
,ArrayBufferView
,Blob
,DOMString
等对象构成的Array
,或者其他类似对象的混合体,它将会被放进Blob
。DOMStrings
会被编码为UTF-8
。第二个参数是文件的MIME
类型Data URL
格式1
2
3
4
5// 格式
data:[<mediatype>][;base64],<data>
// 浏览器地址栏可以直接访问
data:text/html,<h1>Hello%2C%20World!</h1>Base64
最常用的场景一般是将图片压缩处理,但是编码之后存储较大ObjectURL
浏览器的URL
对象生成一个地址来表示Blob
数据1
URL.createObjectURL(new Blob('hello, world'.split('')))
具体下载思路
一般接口返回值都是 json
结构,所以可以先将其 JSON.stringify
序列化为 JSON
字符串,想要将接口返回的数据下载,有两种思路
- 将
JSON
字符串文本转换为Data URL
- 将
JSON
字符串文本转换为Blob
,再由Blob
创建ObjectURL
- 最终都通过
a
标签的模拟点击来下载
具体伪代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!