我试图保存blob
数据(favicon)通过AJAX检索,到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中?
2条答案
按热度按时间of1yzvn41#
只需将blob作为数据uri存储在本地存储中
g0czyy6m2#
我们现在可以使用现代的
fetch
API来完成这项工作。上面的代码将尝试从该高速缓存中获取图片。如果没有,它将下载并存储在该高速缓存中。