最近、AngulaJsのダイジェストとパフォーマンスの改善について勉強を始めました。私のウェブサイトでは、ng-if
トンを使用しています。ng-ifの代わりにdigestを保存するAngularJs
時々ng-if
に変更される可能性のある変数がありますが、コントローラの起動時に固定されて変更されないことがよくあります。
パフォーマンスを向上させるために、ダイジェストでループを評価しないようにするにはどうすればよいですか?ng-if
?私は指令を変更する必要がありますか?ものによって?私のヘッダーテンプレートで
例えば
私は、ユーザーの特定のタイプによって見ることができるのdivを持っています。それは単なるdivなので、私はいくつかの異なるテンプレートを呼びたくはありません。 私が最初に評価すると、userIsSuperior()
のリターン谷が(もちろん、このセッション中に)変わることはありませんが、私はAngularJsダイジェストは、すべてのループ、それを評価していることを知っている<div ng-if="userIsSuperior()"> ... </div>
を置きます。 どうすればこの問題を回避できますか?または私は何かを逃していますか?
例を追加しました – charlietfl
いくつかの具体例なしに答えるのは難しいです。私は本当に多くのものを持っています。コントローラの機能のほとんどは、いくつかの計算(ウェブサイトを上げれば本当に高価になるかもしれません)に基づいて真偽を返します。 –
よくあることは、 'userIsSuperior()'のようなビューで関数を使うよりもスコープモデルのプロパティを設定するほうが良いということです。ダイジェスト中に不必要な関数呼び出しをたくさん保存します – charlietfl