2017-07-07 20 views
-1

私は5000人のユーザーリストとその詳細をサーバーから取得しており、それらのレコードを表示しようとしています。レコードが表示されていますが、読み込みが続いていますが、ロード後は何もできません。ロードやクラッシュなしに5000レコードをロードするソリューションはありますか?重いデータを読み込むには?

+0

これまでに試したことを教えてください! – 31piy

+1

ユーザーがテーブルをスクロールするときに、データを遅延ロードすることができます。また、データが表示されたばかりであれば、{{:: val}} – user93

答えて

1

を使用している--Ifロード5000のレコードの問題点は、大量のデータを受信して​​いること(だけ)ではありませんが、 Angularはダイジェストサイクルのすべてを処理しなければなりません。ブラウザでプロファイリングを行うと、ほとんどのCPU時間がダイジェストループで費やされることがわかります。

一度に1ページに限られた数のDOM要素を許可する必要がないようにするには、提案するように、これを行う1つの方法はページングを使用することです。

もう1つの方法として、5000レコードを読み込む場合は、仮想リピート/スクロールというコンセプトを使用します。ここでは、ビューポートに収まる要素(ユーザーの画面)と、ユーザーがスクロールするたびに、ディレクティブは、以下の要素を追加し、視界に入っていない要素を削除します。これはシームレスに行うことができ、パフォーマンスに大きな影響を与える可能性があります。

バーチャルリピート/スクロールは、自分で作成するのは難しい作業ですが、幸いにもいくつかの異なる実装があります。私はAngular Virtual Scroll ngRepeat directiveの経験がありますが、他にも同様に働く人がいます。

1

5000レコードを一度にロードして、ブラウザで同じレコードを表示することはお勧めしません。あなたはページングを使用する必要があります。重いデータをブラウザに読み込むことはできません。クラッシュするか応答しない可能性があります。ページングを使用して一度に10/20/30レコードのみを取得し、ページングボタンを提供すると、ユーザーはクリックして目的のページに移動できます。あなたがページングを行うことができますどのように

記事:http://www.c-sharpcorner.com/article/server-side-pagination-using-angularjs-web-api-and-sql-server/
あなたはWebAPIの

+0

という一度のバインディングを使用することもできます。一度に100回行っても、それほど悪くはありません。また、結果を特定または検索するための検索ボックスの使用を検討する必要があります。あなたが改ページするのを助けるたくさんのパッケージがあります。私はブートストラップを好む傾向があります:http://getbootstrap.com/components/#pagination – Porschiey

+1

単一のページにすべてを表示しているわけではないので、フィルタは使いやすさの点で最高のものです – Sujith

+0

私は同意しますが、 1分以内に全員に共通のメッセージを送信したいだから私はすべてのユーザーが表示する必要があります –

関連する問題