3

Durandal は ViewModels/View を初期読み込み中/事前に読み込みますか、それともオンデマンドで読み込みますか?

ビューごとに 100 ページ以上の非常に巨大な Web サイトがあり、各ビューにはかなり大きなビューモデルがあるとします。デュランダルはそれらすべてを前もってロードしますか?

各ビューのデータ呼び出しについてはどうですか?それらを事前にロードしている場合、それらはすべてトリガーされますか?

デュランダルの行動を理解しようとする

4

2 に答える 2

4

Durandal は必要に応じて (オンデマンドで) ビューとビューモデルを読み込みます。したがって、100 個のビューとビューモデルを使用する例では、使用するもののみをロードします。ブラウザ ツールの [ネットワーク] タブを見ると、それらが必要に応じて表示されることがわかります。

また、それらがローカルになると、ブラウザにキャッシュされます。これは良いことです。

ビューモデルが「アクティブ化」でデータ呼び出しを行う場合、はい、アクティブ化するたびに呼び出されます。ライフサイクル イベントの詳細については、Durandal のドキュメントを参照してください。

ただし、optimizer.exe を実行すると、それらすべてがパッケージ化され、最初に 1 ショット (縮小) でクライアントに表示されます。これは私が開発中に行うことではありません。ただし、ライブになった後にすべてを事前にロードしたい場合は、これがアプリ全体をローカルにする方法です。

100 回以上のビューを持つアプリの場合、1 回の使用で 100 回すべてのビューをヒットする人はほとんどいないため、おそらくロードします (私は推測しています)。アプリをどのように使用するかによって異なります。

于 2013-03-04T02:57:44.147 に答える
2

私はデュランダルは初めてですが、これには2つのオプションがあると確信しています.

デフォルトであるオンデマンドでロードするか、すべてのアプリ ファイルを 1 つのパッケージに縮小するアプリとしてビルドすることができます。そのビルドステップの詳細についてはわかりませんが、おそらくそのアプローチを行えば、アプリ全体が 1 回でダウンロードされます。

各ビューのデータ呼び出しに関しては、通常、ビュー モデルのアクティブ化関数でそれらを開始します。したがって、ビューモデルがアクティブ化されたときにのみ発生し、完全に前もって発生するわけではありません。

したがって、あなたのシナリオでは、デュランダルは非常にうまく機能します。

于 2013-03-03T16:13:23.410 に答える