2017-09-12 2 views
0

APIから約1000レコードを取得しています。私はページ区切りなしでUIに表示したい(この時点でいくつかの問題があります)。私はng-repeatを使ってhtmlのレコードを読み込んでいます。 ng-repeatはこれらのページのレンダリングに多くの時間を費やしています。私は 'track by id'も使用しています。AngularJSは、改ページを使用して繰り返し回数を向上させます。

ng-repeatパフォーマンスを向上させるにはどうすればよいですか?私の選択肢は何ですか?

+1

これらのレコードに対してフィルタリングを行っている場合は、各ダイジェストでトリガするDOMベースのフィルタ(たとえば '{{amount | currency}}')を避け、代わりに ' $ filter'サービスです。ワンタイムバインディング(例えば '{{:: amount}}')は、時計の負荷を軽減します。さらに、まだ実行していない場合は、アプリケーションのプロダクションバージョンに対して[デバッグデータを無効にする](https://docs.angularjs.org/guide/production)を試してください。 – miqid

答えて

0

あなたはページネーションを使用するつもりはない場合は、1時間結合を(https://docs.angularjs.org/guide/expressionで「ワンタイムバインディング」の項を参照)を検討すべきである、またはそれがニーズに合わない場合は、https://github.com/kasperlewau/angular-bind-notifier

を試すことができます

しかしレンダリングにはまだ時間がかかるので、limitToフィルタを使用して無限スクロールをシミュレートし、スクロールダウンするとその値を増やすことを検討する必要があります。一度に1000個のアイテムをすべて表示したい場合、どのように最適化しても、常に遅くなります。

+0

はい、私は::ワンタイムバインディングを使用しています。それでも私は同じ問題を抱えています。 – user3194721

関連する問題