良い一日!
最近、backbone/require にハマっていて、本当にクールなことを学んでいます。バックボーン コレクションがフェッチされているときにローディング バー/スピナーを表示するためのベスト プラクティスは何かを学ぼうとしています。コレクションでフェッチ/同期イベントをトリガーするために使用されていることがわかったいくつかの戦略を次に示します。
方法 1:アプリケーションの開始前にバックボーンの同期メソッドをオーバーライドし、そのコレクションで「同期」イベントをトリガーする
方法 2:アプリケーションの開始前にバックボーンのフェッチ メソッドをオーバーライドし、そのコレクションで「フェッチ」イベントをトリガーする
方法 3:コレクションが定義されている場合は、fetch() メソッドをオーバーライドし、「フェッチ」イベントをトリガーして、インスタンスのフェッチを監視できるようにします。
方法 4:ビューがコレクションに対して fetch() を呼び出すと、そのビューがイベントをトリガーするように、イベント集約を使用することを提案する人もいます。
これが私の状況です:
- コレクションCがあるとしましょう
- それにアクセスできる 2 つのビュー V1 と V2 があります。
- V1 は C で fetch を呼び出すことができますが、V2 はできません
- C がフェッチを開始すると、V2 のみが読み込みバーを表示し、C で reset() が呼び出されたときにオフにします。
- Cがフェッチされているときにローディングバーが必要になる可能性のある他のビューV3、V4などもある可能性があります
厳密な MVC パターンをそのまま維持しながら、読み込みバーを表示するための最良のメカニズムは何でしょうか?
オプション 1:ビューはコレクションの「同期」イベントをリッスンする必要がありますか? 問題: 他の fetch()、save() が呼び出されると、ロード バーが表示される場合がある
オプション 2:ビューはコレクションの 'fetch()' イベントをリッスンし、それに応じて動作する必要がありますか?
オプション 3:コレクションに対して fetch() を呼び出したときに、あるビューが別のビューに通知する必要がありますか?
オプション 4:ビューは、ウィンドウまたはイベント アグリゲーターでフェッチ メソッドを呼び出す必要がありますか?
他の方法とオプションも歓迎されます。あなたの提案やアドバイスは最高のリソースです。ありがとう。