Ibm mobilefirst 达到JSONStore限制的错误

Ibm mobilefirst 达到JSONStore限制的错误,ibm-mobilefirst,jsonstore,Ibm Mobilefirst,Jsonstore,我在Worklight运行时找到了。 如果添加到集合中并达到移动设备的大小限制,WL JSONStore API是否返回错误/错误代码?是的,您应该会收到错误,但它将是一个通用错误,如持久存储失败(-1)。我建议将此测试作为应用程序常规单元、功能等测试和QA过程的一部分。如果发现意外情况,请立即报告 最近我回答了一个类似的问题:“JSON离线设备存储是否可以限制大小?”。我将在这里添加我的答案,因为我相信这可能会有所帮助 虽然此功能没有被烘焙到核心API中,但它的实现应该相当简单 JSONSto

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

是的,您应该会收到错误,但它将是一个通用错误,如
持久存储失败
-1
)。我建议将此测试作为应用程序常规单元、功能等测试和QA过程的一部分。如果发现意外情况,请立即报告

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

虽然此功能没有被烘焙到核心API中,但它的实现应该相当简单

JSONStore有一个可用于向JSONStoreInstance原型添加函数的工具。里面有一个例子应该会有所帮助

科尔多瓦有一个

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

JSONStore将其数据存储在以下位置:

  • iOS:
    [app]/Documents/wljsonstore/jsonstore.sqlite
  • Android:
    /data/data/com.[app name]/databases/wljsonstor/jsonstore.sqlite
我在下面的回答中谈到了这个文件:

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

基本上你会这样做:

if(checkFileSize(collection.name+'.sqlite') < LIMIT){
  collection.add(...);
}
if(checkFileSize(collection.name+'.sqlite')
使用Enhanced,您可以将该逻辑包装到自己的方法中(例如,
collection.addWithSizeCheck(…)
),该方法检查文件大小并调用
collection.add(…)

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