📌  相关文章
📜  如何检查本地存储是否可用 (1)

📅  最后修改于: 2023-12-03 15:24:50.962000             🧑  作者: Mango

如何检查本地存储是否可用

在 Web 开发过程中,我们通常使用本地存储来保存数据,以便下次使用时可以直接获取。但有时候,本地存储可能会被浏览器禁用或者被用户清除。在这种情况下,我们就需要检测本地存储是否可用。

下面分别介绍如何检测 localStorage 和 sessionStorage 是否可用。

检测 localStorage 是否可用

localStorage 可以永久存储数据,直到用户清除浏览器缓存为止。我们可以通过尝试读写 localStorage 来检测其是否可用。

function checkLocalStorage() {
  try {
    // 尝试读写 localStorage
    localStorage.setItem('test', 'test');
    localStorage.removeItem('test');
    return true;
  } catch (e) {
    return false;
  }
}

上面的代码中,我们尝试在 localStorage 中存储一个键为 test,值为 test 的数据,并立即删除它。如果在这个过程中没有发生异常,就说明 localStorage 可用,返回 true;否则,就说明 localStorage 不可用,返回 false。

检测 sessionStorage 是否可用

sessionStorage 只能在当前会话中存储数据,即当用户关闭浏览器标签页或窗口时,sessionStorage 中的数据就被清除了。我们可以通过尝试读写 sessionStorage 来检测其是否可用。

function checkSessionStorage() {
  try {
    // 尝试读写 sessionStorage
    sessionStorage.setItem('test', 'test');
    sessionStorage.removeItem('test');
    return true;
  } catch (e) {
    return false;
  }
}

上面的代码中,我们尝试在 sessionStorage 中存储一个键为 test,值为 test 的数据,并立即删除它。如果在这个过程中没有发生异常,就说明 sessionStorage 可用,返回 true;否则,就说明 sessionStorage 不可用,返回 false。

总结

通过以上代码片段,我们可以在代码中检测 localStorage 和 sessionStorage 是否可用,从而在用户清除浏览器缓存或禁用本地存储时给出正确的提示信息。