[英]How to Check that how much offline storage has been Used
我正在使用离线存储,并且想在存储空间已满时清除它。 我只想知道如何使用旧存储。 我正在使用以下代码清除脱机存储:
localStorage.clear();
您可以使用localStorage.length
来获取存储中元素的数量。 但是它不太可能直接放弃使用多少存储空间的大小(以字节为单位)-除非您存储单调数据,该数据可以让您根据键的数量来预测大小。
但是,如果您设置的值超出可用限制,则确实会收到QUOTA_EXCEEDED_ERR
异常。 因此,只需将代码包装在try..catch
,如果确实收到error.type
作为QUOTA_EXCEEDED_ERR
,则可以清除空间。
您还可以遍历存储中的所有项目以获取其完整大小。 但是鉴于存储量的增加可能会花费一些时间,因此我不愿意这样做。 如果您有兴趣,可以使用以下方法:
var size = 0;
for (var i = 0, len = localStorage.length; i < len; ++i) {
size += localStorage.getItem(localStorage.key(i)).length;
}
console.log("Size: " + size);
PS:我试图通过遍历localStorage键并添加大小来获取大小,但是浏览器选项卡崩溃了。 所以我想依靠QUOTA_EXCEEDED_ERR
更好。
您还可以使用JSON.stringify(localStorage).length
粗略估计大小。 这似乎比遍历键更快,并且不会使浏览器崩溃。 但请记住,它包含额外的JSON字符(如{
, }
, ,
和"
)的浏览器将使用它们来包装键和值。所以大小会比实际值略高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.