16

私は現在、巨大なバックボーン アプリ (facebook クローン) を構築しています。

この数日間、Rob Conery の優れたチュートリアル (MVC 3 と BB http://tekpub.com/productions/mvc3を使用する場合は必須)のおかげで、BB ですべてが機能することにかなり満足しています。

アプリのページ切り替えが必要な段階に来て、配線を始めているのですが、自分でやることが多い気がします。これで問題ありません。自分のやりたいことができることはわかっています。

ページを切り替えるときにモデル/コレクション/ビューをバインド解除して削除することを確認することで、メモリリークの問題を解決しました。ページ間を移動するためにバックボーンでビューを切り替える - 正しい方法は何ですか?

しかし、これ以外にも、ページを切り替えるときに実行したいタスクが山ほどあります。基本的に、ページの一部を削除および追加します。これは、すべてを削除するのではなく、少し複雑なため、変更する必要があるページのビットのみを削除/破棄したいため、実行したい遷移に基づいています。

述べたように、私は現時点で自分でそれを機能させていますが、このティアアップ/ティアダウンプロセスを処理し、物事をきれいに保つパターンがあるかどうか疑問に思いました (そして、非常に肥大化したルーター (コントローラーの膨張! !!)

4

2 に答える 2

9

マリオネットは間違いなく行く方法です。特に、Marionette.Layoutは、ページ全体を再レンダリングせずに特定の領域を交換するのに最適です。Derick のサンプル アプリのいくつかをチェックして、フレームワークに慣れてください。

普通の古いイベントを使用してアプリが動作するようになるまで、Router には近づかないことをお勧めします。その後、ルーターのサポートを追加します。基本的に、ルーターはアプリの状態を反映するように接続する必要がありますが、コントローラーとして依存するべきではありません。

余談ですが、私は大規模なマルチモジュール バックボーン プロジェクトで RequrieJS を使用していますが、これは天の恵みでした。BB コミュニティでは物議をかもしていますが、相互に依存するコンポーネントが多数あり、別のフレームワークにすべての依存関係を処理させたい場合は、検討する価値があります。

于 2012-04-21T21:43:59.173 に答える
0

同じ問題があり、それをどのように解決したかを共有したかったので、ページ遷移規則を使用して、Backbone.js ドキュメントから ToDo アプリの例を再設計しました。

http://ahamlett.com/Backbone.localStorage/

メモリリークについてはテストしていませんが、アプリのルーターの SetView メソッドで .remove() の前に .unbind() を呼び出すだけの場合があります。

于 2013-06-07T18:04:08.770 に答える