【发布时间】:2012-04-03 12:34:23
【问题描述】:
这与this one 基本相同,只是我没有使用PhoneGap(所以我认为那里提供的任何解决方案都不适用)。
我有一个可以离线工作的纯 HTML/JS webapp(使用 WebSQL 进行存储,使用 AppCache 进行离线使用)。
该应用程序具有“导出”选项,可将数据序列化为 JSON 并将其上传到 AWS S3 存储桶进行备份;以及用于恢复的相应“导入”选项。然而,由于这是整个数据库的完整转储/恢复,所以这个过程并不是那么快,所以我通常每周备份一次。
正如预期的那样,从 iOS 5 到 5.1 的 OTA 升级删除了我本地的 webSQL 数据库,但我能够成功地从 S3 恢复数据(幸运的是,我刚刚在升级)。
不幸的是,在运行 iOS 5.1 几周后,它再次决定需要空间,并删除了我的 webSQL 数据库。同样,我很幸运,这发生在我每周定期备份之后;但我担心如果这种情况经常发生(iOS 删除这个“临时”数据库以回收空间),不久之后我就会因为几天没有备份而陷入困境。
我计划最终摆脱现在已经失效的 WebSQL,并使用 IndexedDB;但当然 iOS 还不支持 IndexedDB。我还计划修改我的应用程序中的导出/导入过程,以便它只是将所有更改的记录同步与 S3 而不是完全转储/恢复(以便备份到 S3 更少麻烦,因此可能比每周更频繁)。
与此同时,是否有任何黑客/解决方法/技巧来确保 iOS 5.1 不会清除 WebSQL 数据库;或者有没有我可以预测何时可能进行清理,以便我可以尝试通过运行导出来备份我的数据来抢占它?
【问题讨论】: