如何检查使用了多少离线存储



我正在使用离线存储,并希望在存储内存已满时将其清除。我想要的就是知道如何获取使用存储。我正在使用以下代码清除离线存储:

  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);

ref:当localstorage已满时会发生什么?

ps:我试图通过在localstorage键上迭代并添加大小来获得大小,但浏览器选项卡崩溃了。所以我会说依靠QUOTA_EXCEEDED_ERR更好。

更新

您还可以使用JSON.stringify(localStorage).length进行粗略的估计。这似乎比在钥匙上迭代更快,并且不会崩溃浏览器。但是请记住,它包含其他JSON字符(例如{},"),因为浏览器将使用它们来包装键和值。因此,大小将略高于实际值。

相关内容

  • 没有找到相关文章

最新更新