【发布时间】:2014-01-27 07:49:01
【问题描述】:
我正在尝试将通过 AJAX 检索到的 blob 数据(网站图标)保存到 localStorage。
代码:
var xhr = new XMLHttpRequest();
xhr.open('GET',
'http://g.etfv.co/http://www.google.com',
true);
xhr.responseType = "blob";
xhr.onload = function(e){ //Stringify blob...
localStorage['icon'] = JSON.stringify(xhr.response);
//reload the icon from storage
var fr = new FileReader();
fr.onload =
function(e) {
document.getElementById("myicon").src = fr.result;
}
fr.readAsDataURL(JSON.parse(localStorage['icon']));
}
xhr.send(null);
代码改编自here,稍作修改以使其适用于localStorage。
localStorage 将所有数据保存为字符串,因此在保存之前,blob 需要以某种方式字符串化。
JSON 不将 blob 作为其支持的类型之一来处理,因此此代码失败也就不足为奇了。
有什么方法可以将 blob 放入 localStorage?
【问题讨论】:
-
不确定,只是一个镜头,但如果您的请求响应是二进制文件本身,那么您直接将其保存在 localStorage..
-
啊抱歉,我在考虑 indexeddb,没关系。
-
@XGreen 哟,伙计!那不是问题,那是博士论文。无论如何都会检查一下。
标签: javascript json html blob web-storage