【问题标题】:Error which hit the limit of JSONStore达到 JSONStore 限制的错误
【发布时间】:2013-05-07 03:16:24
【问题描述】:

我通过 Worklight 运行时找到了Worklight JSONStore has no size limit。 如果您添加到集合并达到移动设备的大小限制,WL JSONStore API 是否会返回错误/错误代码?

【问题讨论】:

    标签: ibm-mobilefirst jsonstore


    【解决方案1】:

    是的,您应该会收到一个错误,但它会是一个通用错误,例如 PERSISTENT_STORE_FAILURE (-1)。我建议将此作为常规单元、功能等测试和应用程序 QA 流程的一部分进行测试。如果您发现意外情况,请报告。

    最近我回答了一个类似的问题“JSON 离线设备存储可以限制大小吗?”。我将在此处添加我的答案,因为我相信它可能会有所帮助。

    虽然此功能未包含在核心 API 中,但实现起来应该相当简单。

    JSONStore 有一个enhance method,您可以使用它向 JSONStoreInstance 原型添加函数。里面有一个例子应该会有所帮助。

    Cordova 有一个File API

    注意:“size:文件的大小,以字节为单位。(长)”

    JSONStore 将其数据存储在这里:

    • iOS:[app]/Documents/wljsonstore/jsonstore.sqlite
    • 安卓:/data/data/com.[app-name]/databases/wljsonstor/jsonstore.sqlite

    我在 StackOverflow 的这些回答中谈到了该文件:

    在向 JSONStore 集合添加更多数据之前,使用 Cordova 的 File API 检查 jsonstore.sqlite 的文件大小。

    基本上你会做这样的事情:

    if(checkFileSize(collection.name+'.sqlite') < LIMIT){
      collection.add(...);
    }
    

    使用增强,您可以将该逻辑包装到它自己的方法(例如collection.addWithSizeCheck(....))中,该方法检查文件大小并调用collection.add(...)

    请注意,默认用户名是jsonstore,因此是jsonstore.sqlite。如果您将用户名传递给init,它将使用该用户名创建一个新的 .sqlite 文件。

    【讨论】:

      猜你喜欢
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 2018-12-07
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多