当用户试图删除indexedDB数据库时,是否有方法执行函数
Is there a way to execute a function when user tries to delete an indexedDB database?
在用户想要清除indexedDB数据库之前,是否有类似ondelete事件处理程序或警告用户的方法。
背景:有一个离线优先的应用程序,它在离线时将大部分数据保存在indexedDB上。现在,当用户联机时,它会尝试将数据同步到服务器,但现在,如果有人错误地重置浏览器或清除indexedDB,他们可能会造成灾难,因为他们有重要的数据需要同步到服务器。
那么,有什么办法可以克服这个问题吗?有没有一种方法可以将indexedDB保存为持久文件系统,或者禁用删除或引发事件并在发生删除时正确处理?
否。尽管我们中的一些人正在使用它,但不能保证IndexedDB数据库中的数据会保留在那里。这是经过设计的,是"临时"存储。如果需要的话,浏览器可以释放空间。当最终可以将IndexedDB数据存储为"持久"数据时,情况会有所改善,但永远无法保证数据不会被删除。IMHO用户应该有能力删除计算机上的数据,如果这不是真的,那将是一个重大问题。
这个问题可能比你意识到的还要严重。例如,Chrome中有一个错误(可能在其他浏览器中也有)。如果用户说"删除我过去24小时内的cookie和网站数据",Chrome将完全删除过去24小时中更改的任何IndexedDB数据库。因此,如果你在一个数据库中有5000个对象,它们是一年前创建的,但此后从未更改过,还有一个是今天编辑的,它们都会被删除。这可能会让用户感到困惑,但据我所知,还没有人提出一个好的解决方案。
唯一的解决方法是同步到服务器,这显然不是100%可靠的。因此,如果你有任何非常重要的数据,它可能不应该在网站的IndexedDB数据库中,除非作为缓存。
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- JSPM-是否有方法或需要对捆绑文件进行版本化
- 当用户试图删除indexedDB数据库时,是否有方法执行函数
- Box2dWeb中是否有方法将对象的位置.x输出到console.log()
- 是否有方法在WebCrypto API中获取RSA密钥的组件
- 是否有方法可以快速确定浏览器是否支持启用了cors的图像而不会污染浏览器?
- 是否有方法以编程方式确定私钥是用DER还是PEM编码的?
- 在反序列化JSON对象时,是否有方法将属性名称转换为小写?
- 是否有方法检查特定点(X,Y)是否在SVG元素中
- 是否有方法减少相同if语句的代码
- 在babel编译时是否有方法注入或忽略全局变量?
- Node.js query:是否有方法提示用户自定义大小的数组
- 在检查字符串时,是否有方法包含单词变体(过去时,动名词)
- 当元素不处于悬停状态时,是否有方法获得元素的HOVER样式?
- 是否有方法检测和更改输入值格式
- 解析JSON字符串后是否有方法获得对象属性
- 检查对象是否有方法,而不实例化它
- 在附加到webRequest事件时,是否有方法访问匹配的URL模式
- 如果访问amazon s3对象,是否有方法调用lambda函数?