【发布时间】:2014-03-07 00:16:55
【问题描述】:
我正在了解localStorage,听起来每个浏览器都给了一个 5MB 的域。
我编写了这段代码来缓存从 ajax 调用返回的数据,它可以工作。但是如何测试 localStorage 是否已满?如果没有可用的 localStorage 空间,我想应该再次发出 ajax 请求。
这是我的代码:
if ( localStorage && localStorage.getItem('myGithub') ) {
console.log('if statement');
console.log( JSON.parse( localStorage.getItem( 'myGithub') ) );
render( JSON.parse( localStorage.getItem( 'myGithub') ) );
}
else {
console.log('else statment');
$.ajax({
url : 'https://api.github.com/users/xxxxxxxxx',
dataType : 'json',
success : function (data) {
if ( localStorage ) {
localStorage.setItem( 'myGithub', JSON.stringify(data) );
}
console.log(data);
render(data);
}
});
}
//Render method for printing the results to the <body> element.
//Returns html from the ajax call or from localStorage.
function render (myObjx) {
var results = '';
for (var prop in myObjx) {
results += '<p>data.' + prop + ' = ' + myObjx[prop] + '</p>';
}
var printData = $('body').html(results);
return printData;
};
【问题讨论】:
-
感谢 Olaf 的网站!
-
@IonicăBizău 我正在寻找测试以防止代码在达到最大大小限制的情况下失败。我不是在寻找 localStorage 的当前大小。但是谢谢你的链接!
标签: javascript jquery local-storage