web-dev-qa-db-ja.com

Backbone.jsはレストとローカルストレージを実行できますか?

私はBackbone.js(https://github.com/jeromegn/Backbone.localStorage)のlocalstorageモジュールを実験しています。私が理解しているように、これはBackbone.syncをオーバーロードし、バックボーンがサーバーにプッシュするのを停止します(?)。理想的には、データもサーバーに戻し、オンラインのときはローカルに保持し、オフラインのときはローカルストレージを使用したいと思います(ご存知のとおり、完璧なアプリです)。ドキュメントはまだ見つかりません。

Backbone.localStorageはこれの一部ですか?誰かがこのシナリオを構築できましたか?これはどのように行われますか? (自分でロールする必要がないことを教えてください。)

ありがとう。

43
LeRoy

Backbone.localStorageは、Backbone.Syncを上書きするために使用できる外部ファイルです。

ユーザーがオフラインかオンラインかについて単純な機能検出を使用し、オフラインの場合は非同期にBackbone.localStorage.jsをロードできます。

必要に応じて、Backbone.syncの特定のバージョンをモデルやコレクションに渡すこともできます。

両方を同時に実行する場合は、サーバーを呼び出し、localStorageを呼び出す独自のバージョンのBackbone.syncを作成する必要があります。

これを行う最も簡単な方法は、

Backbone.sync = function() {
    originalSync.apply(this, arguments);
    localStorageSync.apply(this, arguments);
}

編集:

コメントで述べたように、最新のバックボーン localStorageプラグイン を使用すると、次のことができます

Backbone.sync = function Sync() {
    Backbone.ajaxSync.apply(this, arguments);
    return Backbone.localSync.apply(this, arguments);
};
45
Raynos