2016-09-20 18 views
2

APIからデータを受け取り、それをUIビューにバインドするためのキャッシュに保存するアプリケーションを開発しています。このデータは複数のビュー間で共有され、その変更はビューに反映される必要があります。これまでのところ、NativeScriptのための最良かつ最速のオプションは何ですか?プロのSenchaTouchストア/モデルに似たものを持っているのはすばらしいでしょう。ありがとう。NativeScript:ビューデータバインディングを使用した永続的なキャッシュ/ストレージの最適化

答えて

1

他のJavascriptアプリケーションと同様に、シングルトンを作成してリクエスト/インポートするだけです。データをObservableに保存しておくと、その変更はすぐにビューに反映されます。

など。

ファイル:あなたがそのデータを読み込みたい任意のファイルでmyData.js

var observableArray = require("data/observable-array"); 
var observable = require("data/observable"); 
var DATA = new observable.Observable({ 
    something: 'a value here', 
    somethingElse: 1 
    somethingMany: new observableArray.ObservableArray(['a', 'b', 'c']) 
}); 

exports.getData = function() { return DATA; }; 
exports.fetchFromAPI = function() { /* something that fetches and updates DATA */ } 

var data = require("./myData.js"); 
console.log(data.getData()); 

Observables in NativeScript

+0

詳細についてはこちらをご覧ください私は現在仕事です。問題は、永続的なストレージと常にこれを同期させる必要があることです。私はそれのためのSQLiteのプラグインを使用しています。しかし、全体のプロセスは非常に洗練されています。私はタイプをチェックし、それらを変換する必要があります。 SQLiteプラグインを使用するために、カスタムSQLクエリアダプタを作成しました。私は実装が本当に好きではありません。だから、私は他のフレームワークのようにすぐに使えるソリューションを探しています。私はAppcelaratorとSencha Touchの開発から来ました。これはすべてこれがかなりうまく実装されています... – terreb

+0

NativeScript環境でこれを行うためのパッケージはありません。しかし、実装するのはそれほど重要ではありません。あなたのケースでは、アプリケーションの状態(上記の例では 'DATA')をマスターとして簡単に扱い、プロパティリスナーをpropertyChangeEventイベントに追加して保存するだけで、変更を永続ストレージに保存して保存することができます。 –

+0

もう一度それは私がすでに行っていることです:)私は最近、weakEvenListenersに移動しました。なぜなら、NSがゴミを正しく収集するかどうかという懸念からです。私は20の異なった「店」と、そこから見える多くの「子孫」を持っています。アプリケーションの作業中に、メモリ使用量が急速にどのように増加するかを確認します。以前はクラッシュしましたが、いくつかの最適化を実装したときには、それがやめられました。しかし、私はまだこのすべての混乱に満足していないし、少なくとも第三者のソリューションを見たいと思う。 – terreb

関連する問題