2012-06-14 3 views

答えて

4

あなたの使用シナリオや、呼び出しコードをどれだけ変更したいかによって異なります。

オプション1:

:注釈付きsource for Backbone.syncsyncメソッドをオーバーライドするための可能性のある理由として、「バッチ処理」を与え奇妙なことに、クライアントへの変更なし(呼び出し)コード

私は次の2つのオプションを持っていると思います

setTimeoutを使用して、迅速な更新を1回のリクエストにバッチ処理します。

同期を実際に保存する代わりに、リクエストをキューに追加し、頻繁に一括保存するだけです。 _.throttleまたは_.delayこちらでお手伝いします。

オプション2:変更クライアントコード

代わりには、代わりにあなたのモデルにsaveを呼び出すので、あなたはコレクションにsave方法のいくつかの並べ替えを追加することができます。私が知る限り、バックボーンは新しいモデルかどうかしか知りません(しかし、私はそれについて間違っているかもしれません)ので、実際にどのモデルが実際に修正されたかを追跡する必要があります。ここで

+0

から出てくるすべてのAJAX要求を制御するために使用し、それをやった方法です_.delay'、1回のAjaxリクエストで複数の 'アップデート'を送信するにはどうすればいいですか?モデルの配列? – Henry

+1

さまざまな方法があり、実際にはデータアクセスのパターンによって異なります。ここに議論があります:http://stackoverflow.com/questions/411462/restful-way-to-create-multiple-items-in-one-request – stusmith

1

は私が

Backbone.originalSync = Backbone.sync; 

Backbone.sync = function (method, model, options) { 
    // 
    // code to extend sync 
    // 

    // calling original sync 
    Backbone.originalSync(method, model, options); 
} 

が私のために正常に動作し、私はそれが私が `` _.throttle`を使用する場合や、任意のモデルやコレクション

関連する問題