Words のすべての初期モデルを変更イベントで並べ替えにバインドし、コレクションへの追加イベントで同じものをバインドするのはどうですか?
_(self).models.each(model) { model.bind('change', self.sort) } // bind on the model add as well
Backbone.Collection.sort は更新をトリガーするため、次のようにします。
this.bind('refresh', this.refresh)
効率性についての懸念について、「リスト全体が 1 つの項目でソートされる」とはどういう意味ですか? あなたが何千ものアイテムを持っていない限り(そして、それでも、さまざまなブラウザでいくつかのベンチマークを実行してください。それでもかなり速いでしょう)、最新のブラウザ/コンピュータと大きな違いはありません.
あなたがそれについて本当に心配しているなら、より大きなセットをソートし続けるための最適化テクニックのいくつかを行うことができると思います. たとえば、それらをスコア バケット (0 ~ 100、100 ~ 500、500 ~ 1000 など) にドロップしてから、スコアをバケットにドロップし、バケット内でのみ並べ替えます (実際の並べ替えアルゴリズムは、ブラウザーの実装ごとに異なります。バックボーン -またはアンダースコアではなく、それを呼び出すだけです)。このようなアルゴリズムをグーグルで検索できます。しかし、コードの複雑さの増加と比べて、ほとんど得られないのは大変な作業です。
繰り返しになりますが、これが実際に価値があるかどうかを判断するには、多くのプロファイリングとベンチマークが必要です。