gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:06:28 25 4
gpt4 key购买 nike

我正在使用离线存储,并且想在存储内存已满时清除它。我只想知道如何使用存储空间。我使用以下代码来清除离线存储:

  localStorage.clear();

最佳答案

您可以使用localStorage.length来获取存储中元素的数量。但它不太可能直接泄露所使用的存储空间的大小(以字节为单位)——除非您存储的单调数据可以让您根据键的数量来预测大小。

但是,如果您确实超出了可用限制,那么在设置值时您会遇到 QUOTA_EXCEEDED_ERR 异常。因此,只需将代码包装在 try..catch 中,如果您确实得到 error.typeQUOTA_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);

引用号:What happens when localStorage is full?

PS:我尝试通过迭代 localStorage 键并添加大小来获取大小,但浏览器选项卡崩溃了。所以我想说依靠 QUOTA_EXCEEDED_ERR 更好。

更新

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

关于javascript - 如何检查已使用了多少离线存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com