我看了一些关于IndexedDB的文章,但是没有找到持久化数据的细节。我计划在一次数据操作会话中使用它,并在用户完成后上传。但如果发生以下情况会怎样呢?
- 用户关闭浏览器选项卡
- 用户关闭浏览器
- 用户重新启动系统
此外,我通过基于cookie的身份验证来维护用户会话。如果用户注销并重新登录,会发生什么?有办法在注销前检索数据吗?
任何处理这个问题的文档都可以接受。我浏览了规范,但阅读效果不佳。
谢谢。
它类似于 localStorage
,因此是跨会话的,意味着重新启动浏览器或系统不会影响其中存储的内容。但是,用户可以像清除cookie一样清除它。因此,它就像是持久性的cookie,您不能从服务器端信任它,而且您始终需要检查其完整性。
if (navigator.storage && navigator.storage.persist) {
navigator.storage.persist().then(persistent => {
if (persistent) {
console.log("Storage will not be cleared except by explicit user action");
} else {
console.warn("Storage may be cleared by the UA under storage pressure.");
}
});
}
Chrome需要获得使用此功能的权限。如果以下任何条件为真,则在调用navigator.storage.persist()
时将自动授予该权限:
此列表来自一篇介绍Chrome实现的文章,该文章定期更新有关此主题的新信息。