有没有方法可以检测本地存储是否已经达到了其最大值? 或者至少能否给出一个错误消息,告诉我不能再存储更多数据,因为已经达到了最大容量?我想捕获这个错误,以便从我的本地存储中删除最早的项目并插入新的项目。
我正在使用本地存储来存储我的数据库查询的一些结果,这样用户就能够立即加载它们,如果这些特定的项目存在于本地存储中。如果不存在,则从服务器检索数据。
有没有方法可以检测本地存储是否已经达到了其最大值? 或者至少能否给出一个错误消息,告诉我不能再存储更多数据,因为已经达到了最大容量?我想捕获这个错误,以便从我的本地存储中删除最早的项目并插入新的项目。
我正在使用本地存储来存储我的数据库查询的一些结果,这样用户就能够立即加载它们,如果这些特定的项目存在于本地存储中。如果不存在,则从服务器检索数据。
尝试添加本地存储时,如果空间不足,则会抛出此错误。在您的特定情况下,您可以使用此事件来释放一些空间。
try {
localStorage.setItem("name", "Hello World!"); //saves to the database, "key", "value"
} catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Quota exceeded!'); //data wasn't successfully saved due to quota exceed so throw an error
}
}
致谢 - http://chrisberkhout.com/blog/localstorage-errors/
本文讨论了在使用本地存储(local storage)时可能会遇到的常见错误,并提供了一些解决方案。如果您使用本地存储时遇到了问题,可以参考这篇文章来解决。