📅  最后修改于: 2023-12-03 15:24:50.962000             🧑  作者: Mango
在 Web 开发过程中,我们通常使用本地存储来保存数据,以便下次使用时可以直接获取。但有时候,本地存储可能会被浏览器禁用或者被用户清除。在这种情况下,我们就需要检测本地存储是否可用。
下面分别介绍如何检测 localStorage 和 sessionStorage 是否可用。
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 来检测其是否可用。
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 是否可用,从而在用户清除浏览器缓存或禁用本地存储时给出正确的提示信息。