AJAX の成功/失敗をログに記録したいだけなら、Backbone をまったく使用しない、はるかに優れた方法があります$.ajaxComplete
。
jQuery には、関数の引数を取り、呼び出しが完了する (失敗または成功する)ajaxComplete
たびにその関数を実行する、この素晴らしい関数が呼び出されます。$.ajax
このメソッド (つまり、「イベント ハンドラーを ajaxComplete 疑似イベントにバインドする」) を使用すると、次のことができます。
A) バックボーンの内部をいじる必要はありません
B) すべての AJAX リクエストをキャッチすることが保証されています (バックボーンなしで作成されたものも含む)。
C)このロギングコードを残りのコードから完全に分離しておく
おそらく私が見逃している他のいくつかの利点がありますが、あなたはその考えを理解しています.
一方、save
AJAX リクエストだけでなく、本当に気にかけているのであれば、$.ajaxComplete
保存されていないものを無視するために、その内部でフィルタリングを使用して実行することもできます。ただし、独自のモデル基本クラスを作成することもできます (@salexch が提案したように)。さらに悪いことに、バックボーンの内部をいじることもできます。Backbone.Model.prototype.save
orを置き換えることによってBackbone.sync
(@Paul Hoeneckeが提案したように)、将来のバックボーンのアップグレードまたは使用したいサードパーティのバックボーンライブラリで問題が発生する可能性があります。
興味がある場合は、次のドキュメント ページを参照してくださいajaxComplete
:
http://api.jquery.com/ajaxComplete/
ああ、失敗/成功/リクエストの開始/などのみを対象とする、同様の名前の$.ajaxSomething
メソッド (例: )もいくつかあります。ajaxError