2012-05-07 21 views
13

モデルクライアント側を削除する最も良い方法は何ですか?私はそれをサーバー側から削除することについて心配する必要はありません。どのようにすべての邪魔を避け、すべてのゾンビの縛りを避けて、どこにも取り除かれていることを確認します。私はすべてを削除して破壊し、モデルがガベージコレクションされていることを確認するためのガイドを探しています。クライアントサイドのバックボーンモデルを削除するにはどうすればよいですか?

ありがとうございます!

+0

可能な複製http://stackoverflow.com/questions/10400630/remove-a-backbone-model-by-id –

+0

どこから行きましたか?コレクション?ドキュメント?ブラウザのメモリ? – JMM

+0

@JMMどこからでも行って、すべての邪魔を避け、すべてのゾンビの縛りを避けてください。私は、すべてを削除して破壊し、モデルがガベージコレクションされていることを確認するための完全なガイドを探しています。 – fancy

答えて

11

本当にこのモデルの内部にあるかによって異なります。他のインスタンス(View/Collection/Models)からのイベントにバインドされている場合は、これらのイベントリスナをすべて手動で削除する必要はありません。

また、Model.destroy()は任意のコレクション(基幹文書)からモデルを削除します。

はmodel.destroy([オプション])

を破壊... "破壊" イベントをトリガしますそれを含むコレクションを泡立て上げるモデル上に表示されます...

あなたがやりたいかもしれないことは、イベントトリガーと削除したいものを含む新しい破壊メソッドを割り当てることです。

destroy: function(options) { 
    // Any events you wish to switch off (if you have any) 
    SomeCollection.off('change', this.changeFn); 

    Backbone.Model.prototype.destroy.apply(this, options);  
} 

はあなたにもモデルからあまりゴミを作るためのいくつかのパターンを認識しておく必要がありである場合があります。

  1. 変数(コレクションでそれを維持)にあなたの初期化モデルを置かないでください。
  2. モデルからイベントがバインドされないようにコードを記述してください(ビュー/コレクションを使用する)。
  3. あなたのアプリのモデルの番号が最も高くなるため、モデルコードは簡単に保管してください。

これらのルールに従うことで、モデルからのゴミについてあまり心配する必要はありません。

関連する問題