【问题标题】:SQLite database on PhoneGap / iOS - More than 5mb possiblePhoneGap / iOS 上的 SQLite 数据库 - 可能超过 5mb
【发布时间】:2012-02-17 17:22:02
【问题描述】:

我对在 iOS 上的 Phonegap-Native-App 中使用 SQLite 的限制感到有些困惑。

您可以阅读许多关于 5mb 存储空间限制以及您的 Ipad 可以要求您增加存储空间的帖子。

现在,我已经成功地使用常用的 Phonegap-Storage-API 将近 7000 行插入到我的 SQLite 数据库中。对应的 db 文件大小为 26 MB。以下选择语句“select * from”起作用并显示了数据库的内容。 我已经在模拟器和设备上做到了。我没有收到增加存储空间的问题。

怎么可能?我误解了什么吗? Phonegap 中的 SQLite 数据库真的有 5mb 的限制吗? 我正在使用 Phonegap 1.2 和 iOS 5。

【问题讨论】:

    标签: ios ipad sqlite cordova


    【解决方案1】:

    您可以使用带有 phonegap 插件的本机 SQLite DB(与 WebSQL 相同),并且没有任何限制。在iOS5.1中,WebSQL被认为是可以随时删除的临时数据...该插件将数据库保存在Document文件夹中,也就是说数据库没有被删除,由iCloud保存。

    这里是原生 SQLite phonegap 插件:https://github.com/davibe/Phonegap-SQLitePlugin 关于这个插件,WebSQL API 有一些区别,这里是一个适配器: https://gist.github.com/2009518

    您还应该将旧的 WebSQL db 文件(存储在 Library/WebKit 或 Caches 目录中)迁移到 Document 文件夹。这是执行此操作的代码: https://gist.github.com/2009491

    如果数据很重要,您应该将其保存到服务器。我写了一个小库来将 SQlite DB 同步到服务器: https://github.com/orbitaloop/WebSqlSync

    【讨论】:

      【解决方案2】:

      我自己发现的:

      成功打开第一个事务并在该唯一事务中一次插入 7000 条记录。

      如果我将插入拆分为单独的事务,假设每个事务有 500 条记录,则 5 MB 的限制会生效。 PhoneGap 什么也没说,它只是不插入记录。

      【讨论】:

      • 你对这个问题有什么发现吗?
      • 我也对此做了一些探索性的研究。我设法将 20 个数据存储区塞进了 4.5MB,总共 90MB 到一个 safari web 应用程序中,而没有被要求提供更多存储空间。那是在一笔交易中。下一笔交易将失败。
      【解决方案3】:

      设备上 HTML5 存储的问题,它不允许您增加大小。看看这个解决方案:

      Solved iOS Database Size Limitation of 5MB (using Plugin)

      希望这会对你有所帮助。

      干杯

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 2012-04-20
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多