2016-04-15 35 views
0

{{ x + ', ' + y }}{{ x }}, {{ y }}に何か違いがありますか?AngularJS: `{{x + '、' + y}}対{{x}}、{{y}} '

特にウォッチャー費用の面では?

双方向バインドの中括弧を組み合わせてダイジェストループの数を減らすことができるのだろうかと思います。

ありがとうございます。

+0

ダイジェストサイクルの数は変更されません。 – zeroflagL

答えて

2

1つのダイジェストループは、まったくそれをやろうとしている場合、一方または両方を処理します。 xのダイジェストではなく、yのダイジェストではありません(後で新しいものをトリガーしない限り)。技術的には、前者の方が文字列連結を伴うので少し税金がかかると言えますが、後者の場合は何とか後ろの方で起こるはずです。

全体として、一度に数百または数千を表示している場合を除き、このレベルの表現で目立ったパフォーマンスの差が出るとは思えません(その場合、おそらく他の問題もあります)あなたのアプローチを再考する必要があります)。

1

正確には、最初の式は1つの時計を生成しますが、角度は連結を再計算します。

2番目の行に2つの時計があると思われるかもしれませんが、わからない場合もあります。私はあなたがこれを行う場合、それを知っています:

<span> blabla {{x}} blabla</span> 

角度はスパンの全体の内容を見ます。だから、大括弧を複数回使用している場合は、全体として1つの時計しか持たない可能性が非常に高いでしょう。

2

{{}}表記はng-bindディレクティブを使用して、より遅い:

{{}}はすべて消化サイクルでダーティチェックされng-bindパラメータに渡された値にウォッチャを置き、それが変更された場合にのみ、それを更新する一方。 ng-bind{{}}以上に使用することのもう1つの利点は、角がまだロードされているときにページ内に{{}}が表示されないことです。

(あなたの変数は変更されません知っているとき)また、あなたがスタティックバインディング用(角1.3で導入された)新しい::表記法を使用することができます。{{}}ng-bind対表記についての言及について

<h1 data-ng-bind="::title"></h1> 

  • benchmark
  • Someone quoting Igor Minar

      (AngularJSの現像剤のうちの1つ):

    "ng-bindはより簡単なので高速です。補間は、コンテキストの検証、値の結合、および の追加手順を経て に行きます。それはわずかに遅くなります」

  • +0

    'ng-bind x {{}}'についてのパフォーマンスに関する参照はありますか?私はそれについてもっと調べたい – celsomtrindade

    +0

    いくつかの参考文献を追加しました –

    +0

    元の引用は最初のリンクからです^^ベンチマークの方法論は理想的ではなく、引用符は_で続きます "ほとんどの場合、違いは関係ありません"_。汚い点検に関して:2つの間に違いはありません。 – zeroflagL

    関連する問題