Worklight JSONStore には、Worklight ランタイムによるサイズ制限がないことがわかりました。コレクションに追加してモバイル デバイスのサイズ制限に達した場合、WL JSONStore API はエラー/エラー コードを返しますか?
1 に答える
はい、エラーが発生するはずですが、PERSISTENT_STORE_FAILURE
( -1
) のような一般的なものになります。これを、通常のユニット、機能などのテストおよびアプリケーションの QA プロセスの一部としてテストすることをお勧めします。予期しないものを見つけたら、報告してください。
最近、 「JSON オフライン デバイス ストアのサイズを制限できますか?」という同様の質問に回答しました。. 役に立つと思うので、ここに私の答えを追加します。
この機能はコア API に組み込まれていませんが、実装はかなり簡単です。
JSONStore には、関数を JSONStoreInstance プロトタイプに追加するために使用できる拡張メソッドがあります。内部に役立つ例があります。
Cordova にはファイル APIがあります
注:「サイズ:ファイルのサイズ(バイト単位)。(ロング)」
JSONStore はそのデータを次の場所に格納します。
- iOS:
[app]/Documents/wljsonstore/jsonstore.sqlite
- アンドロイド:
/data/data/com.[app-name]/databases/wljsonstor/jsonstore.sqlite
これらのStackOverflowの回答でそのファイルについて少し話しました:
jsonstore.sqlite
JSONStore コレクションにデータを追加する前に、Cordova のファイル API を使用してファイル サイズを確認してください。
基本的には、次のようにします。
if(checkFileSize(collection.name+'.sqlite') < LIMIT){
collection.add(...);
}
collection.addWithSizeCheck(....)
エンハンスを使用すると、ファイル サイズをチェックして を呼び出す独自のメソッド (例: ) にそのロジックをラップできますcollection.add(...)
。
デフォルトのユーザー名はjsonstore
であるため、jsonstore.sqlite
. ユーザー名をinitに渡すと、そのユーザー名で新しい .sqlite ファイルが作成されます。