我通过Worklight运行时找到了Worklight JSONStore has no size limit。 如果您添加到集合并达到移动设备的大小限制,WL JSONStore API是否会返回错误/错误代码?
答案 0 :(得分:2)
是的,你应该收到一个错误,但它会像PERSISTENT_STORE_FAILURE
(-1
)这样的通用错误。我建议将其作为常规单元,功能等测试和QA过程的一部分进行测试。如果您发现意外情况,请回报。
最近我回答了类似的问题“JSON离线设备商店可以限制尺寸吗?”。我会在这里添加我的答案,因为我相信它可能会有所帮助。
虽然此功能未融入核心API,但实施起来应该相当简单。
JSONStore有一个enhance method可用于向JSONStoreInstance原型添加函数。里面有一个应该有帮助的例子。
科尔多瓦有一个File API
注意:“size:文件大小(以字节为单位。(长)”
JSONStore将其数据存储在此处:
[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文件。