概要:
AngularJs では、同じ変数が複数の場所でデータ バインディングに使用されている場合、この変数は $digest-cycle ごとに複数回ダーティ チェックされますか?
より長い質問:
テンプレートのスコープから変数を出力したいのですが、アプリケーションはパフォーマンスに非常に敏感です。テンプレートに次のものが含まれているとします。
<div>{{variableInScope}}</div>
<span class="{{variableInScope}}">We print {{variableInScope}} a lot!</span>
<span class="{{variableInScope}}">We print {{variableInScope}} again!</span>
... snip ~100 lines ...
</div>
これにより、変数variableInScope
は $digest サイクルごとに 1 回または 200 回チェックされますか?
「ひどいコードだ!なぜNG-repeatを使わない?」
上記のコードは、質問を説明するための単なる例です。私はデータ グリッドを構築していますが、多数のウォッチャーをセットアップするため、NG リピートを使用できず、顧客のコンピューターでダイジェスト時間が 2 秒を超えてしまいます。
「ng-gridを使うだけ!」
NG-grid は多くの点で優れていますが、私たちのユース ケースでは同じ問題があります。多くの ng-repeat が発生し、パフォーマンスが低下します。ページの残りの部分は複雑であるため、$digest の時間を最小限に抑える必要があります。