我发现Worklight JSONStore 没有Worklight 运行时的大小限制。如果您添加到集合并达到移动设备的大小限制,WL JSONStore API 是否会返回错误/错误代码?
1 回答
是的,您应该会收到一个错误,但它会是一个通用错误,例如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 文件。