2

概要:

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 の時間を最小限に抑える必要があります。

4

1 に答える 1