0

私は角度1.4を使用しています。 ng-repeatは、テーブルのようなもののために大量の行をレンダリングするときにいくつかのパフォーマンス上の問題があることが一般的に知られています。しかし、ng-repeatや代替の繰り返しを使用して、テーブルのデータ配列をレンダリングする最適な方法があるかどうかは疑問でした。パフォーマンスのためにバインドされていないレンダリングテーブルの行

レポートのデータを出力するだけなので、バインディングは必要ありません。私は1回限りのバインディングのようないくつかの提案を試みましたが、それでも時間がかかります(1000レコード程度で10秒以上)。私が試した他の角度のない方法は、バックエンドのHTMLをあらかじめレンダリングしてから、データ配列の代わりにHTMLを返すことです。そして私はカスタムディレクティブを持っていたので、その要素にHTMLを追加しました。これは2000行でも1秒未満でした(明らかにAngularを使用していないため)。

しかしAngularで同じことを達成できればいいし、Angular側のコントローラでも同様のことをしてもいいだろう。どんな入力も感謝します。あなたがリピータ内の各エントリに::構文を追加する必要が

<ul ng-repeat="item in ::items"> 
    <li>{{ ::item.name }}</li> 
</ul> 

注:

+0

なぜ1000行をレンダリングしたいのだろうと思います。 – ChiefTwoPencils

+0

私は通常それを改ページしますが、ユーザーはすべてのデータを一度に見ることができるようにしたい、またはCtrl + Fを押して探しているレコードを探したいとします。それでは、ビジネス上の必要性が増しています。あまり一般的ではありませんが、実行するレポートは日付範囲に基づいているため、大きな時間枠を選択するとレコード数が大きくなる可能性があります。 – kenshin9

+0

それはそれは私が推測するものです。私は[ng-repeatを慎重に使用する](http://stackoverflow.com/documentation/angularjs/1921/profiling-and-performance/6270/7-simple-performance-improvements#t=20170220203549826701)に「otherページング以外の「アプローチ」真実は、それらがすべてそれらを見ることができない可能性がある、あなたは彼らができる認識を与える必要があり、あなたが言及した他の機能性はまだ達成することができます。 – ChiefTwoPencils

答えて

0

あなたはこのために結合一方向を使用することができます。

あなたのロジックはどれほど複雑かはわかりませんが、1000行の10秒はばかげて聞こえます。

関連する問題