JSONStore は、データをサーバーと同期し、オフライン中にユーザーが行った変更を追跡する優れた方法を提供してくれます。ただし、JSONStore データはメモリ内にのみあるため、ユーザーがアプリケーションを停止したり、デバイスを再起動したりすると、すべての変更が失われます。
Cordova ストレージ API がソリューションの一部である可能性がありますが、それを使用して JSONStore データを永続化および取得する明確な方法がわかりません。
JSONStore は、データをサーバーと同期し、オフライン中にユーザーが行った変更を追跡する優れた方法を提供してくれます。ただし、JSONStore データはメモリ内にのみあるため、ユーザーがアプリケーションを停止したり、デバイスを再起動したりすると、すべての変更が失われます。
Cordova ストレージ API がソリューションの一部である可能性がありますが、それを使用して JSONStore データを永続化および取得する明確な方法がわかりません。
JSONStore データはメモリー内のみです。
別の JSONStore について話している場合を除き、これは正しくありません。アプリケーションがデバイスからアンインストールされるか、 destroy、remove、eraseまたはremoveCollectionへの呼び出しがない限り、データは永続化されます。詳細については、入門モジュール(7.9、7.10、7.11、および 7.12) とIBM InfoCenter の資料を参照してください。
次のコード スニペットを試してください。
var c = WL.JSONStore.initCollection('customers', {name: 'string'}, {onSuccess: function(){
c.add({name: 'helloworld'}, {onSuccess: function(){
c.findAll({onSuccess: function (res) {
console.log(JSON.stringify(res));
}})
}});
}});
簡潔にするために、失敗のコールバックは省略しました。アプリケーションを実行するたびに、新しい「helloworld」ドキュメントが保存されます。アプリケーションを再起動しても、データはそのまま残ります。ここで使用した API メソッドの詳細を読むことができます: initCollection、add、findAll。
何らかの形でデータを消去しないように、既存のデータを確認する方法があるのではないでしょうか?
countを呼び出して、JSONStore コレクション内のデータ量を確認できます。
バックエンドからデータを取得する場合は、Worklight アダプターを作成してコレクションにリンクし、 loadを呼び出す必要があります。データをバックエンドに送り返すには、pushを呼び出します。これは、入門モジュール、具体的にはModule 7.11 - JSONStore with Synchronizationでよりよく説明されています。
ondeviceready
補足として、イベントが発生した後に必ず JSONStore を呼び出してください。関数内で JSONStore 呼び出しを行っても安全ですwlCommonInit
。Android または iOS プラットフォーム (デバイスまたはエミュレーター/シミュレーター) でテストしてください。Mobile Browser Simulator や Web ブラウザーでは機能しません。
JSONStore は、デバイスのローカル ストレージにファイルとして保存されます。JSONStore は永続的です。
PhoneGap Storageを見てください。これらのメソッドはすべて、Cordova ライブラリーを介して Worklight で使用できるはずです。