gpt4 book ai didi

web-sql - 如何阻止 HTML 5 数据库在 iOS 5.1 中被删除

转载 作者:行者123 更新时间:2023-12-01 06:41:44 27 4
gpt4 key购买 nike

这与 this one 的问题基本相同, 除了我是 不使用 PhoneGap (所以我认为那里提供的任何解决方案都不适用)。

我有一个可以离线工作的纯 HTML/JS webapp(使用 WebSQL 进行存储,使用 AppCache 进行离线使用)。

该应用程序有一个“导出”选项,可将数据序列化为 JSON 并将其上传到 AWS S3 存储桶进行备份;以及用于恢复的相应“导入”选项。然而,由于这是整个数据库的完整转储/恢复,这个过程并不是那么快,所以我通常每周备份一次。

正如预期的那样,OTA 从 iOS 5 升级到 5.1 删除了我本地的webSQL数据库 ,但我能够成功地从 S3 恢复数据(幸运的是,我刚刚在升级前做了备份)。

不幸的是,在运行 iOS 5.1 几周后,它再次决定它需要空间,并且 删除了我的 webSQL 数据库 .再次,我很幸运,这发生在我每周定期备份之后;但我担心,如果这种情况经常发生(iOS 删除这个“临时”数据库以回收空间),不久我就会因为几天没有备份而陷入困境。

我计划最终离开现已不复存在的 WebSQL,并使用 IndexedDB;但当然 iOS 尚不支持 IndexedDB .我还计划修改我的应用程序中的导出/导入过程,而不是进行完整的转储/恢复,而是 只同步任何更改的记录 使用 S3(这样备份到 S3 就不那么麻烦了,因此可能比每周更频繁地完成)。

同时,是否有任何技巧/解决方法/技巧可以确保 iOS 5.1 不会清除 WebSQL 数据库? ;或者在那里我可以通过任何方式预测清理何时可能发生 ,以便我可以尝试通过运行导出来备份我的数据来抢占它?

最佳答案

PhoneGap 社区提供的解决方案绝对适用。对我们来说,代码在 https://issues.apache.org/jira/browse/CB-330?focusedCommentId=13237796&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13237796对我们来说效果最好,只要在初始化任何 WebView 之前调用它(即,在您的应用程序的 init() 方法中)以及在初始化 WebView 之后调用它。

上面链接的代码将数据库移动到安全位置,并编辑 WebKit 首选项以引用新位置。它需要运行两次,以便在加载 WebKit 之前移动和更新现有数据库,并在加载 WebKit 后更新到新位置(因为 WebKit 会创建指向错误/不安全位置的首选项)

关于web-sql - 如何阻止 HTML 5 数据库在 iOS 5.1 中被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763148/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com