0

我发现Worklight JSONStore 没有Worklight 运行时的大小限制。如果您添加到集合并达到移动设备的大小限制,WL JSONStore API 是否会返回错误/错误代码?

4

1 回答 1

2

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

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

虽然此功能并未融入核心 API,但实现起来应该相当简单。

JSONStore 有一个增强方法,可用于向 JSONStoreInstance 原型添加函数。里面有一个例子应该会有所帮助。

Cordova 有一个文件 API

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

JSONStore 将其数据存储在这里:

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

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

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

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

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

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

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

于 2013-05-13T06:58:44.203 回答