LocalStorage - 检测本地存储是否已满

Vol*_*ton 4 javascript jquery local-storage

有没有办法检测本地存储是否已达到要存储的最大值?或者至少是一条错误消息,告诉我无法再存储,因为我已经达到了最大大小?我想抓住这个,这样我就可以删除本地存储中最旧的项目并插入新的项目。

我正在使用本地存储来存储我的数据库中的一些查询,因此如果本地存储上存在该特定项目,用户将能够立即加载它们。如果没有,那就是我在服务器中检索数据的时间。

小智 6

尝试添加到 localstorage 时,如果空间不足,则会抛出此错误。在您的特定场景中,您可以使用此事件来释放一些空间。

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
  }
}
Run Code Online (Sandbox Code Playgroud)

归功于 - http://chrisberkhout.com/blog/localstorage-errors/

  • 对于那些不访问该链接的人来说,应该指出的是,这不适用于所有当前版本的主要浏览器。检查 e.code === "22" || e.code === "1024" 在大多数情况下可能足以涵盖这些。(在当前版本的 Chrome、Firefox(+Dev-Edition)、Opera、Edge、IE 中测试。) (2认同)