2017-07-07 69 views
-1

我從服務器獲取5000個用戶列表和他們的詳細信息,並試圖顯示這些記錄。記錄顯示,但看到繼續加載..和加載後,我無法做任何事情。有沒有解決方案來加載5000條記錄而不加載和崩潰?如何加載大量數據?

+0

請告訴我們你到目前爲止試過了什麼! – 31piy

+1

隨着用戶滾動瀏覽表,您可以延遲加載數據。如果剛剛顯示的數據更好,您也可以使用一次綁定{{:: val}} – user93

回答

1

問題與裝載5000條記錄http://www.c-sharpcorner.com/article/server-side-pagination-using-angularjs-web-api-and-sql-server/
不(僅)正在接收大量的數據,但Angular必須處理摘要循環中的所有內容。我敢打賭,如果你在瀏覽器中進行分析,你會發現大部分CPU時間都花在摘要循環中。

爲了避免出現這種情況,您一次只能在頁面上允許有限數量的DOM元素。正如所建議的,一種做法是使用分頁。

另一種方式,你仍然加載你的5000條記錄,是使用一個叫虛擬重複/滾動的概念,其中你有一個指令只顯示可以放入你的視口中的元素(即在用戶屏幕上)和那麼無論用戶何時滾動,該指令都會在下面添加更多元素,同時刪除不在視圖中的元素。這可以無縫完成,並可能對性能產生巨大影響。

虛擬重複/滾動可能是您自己創建的困難任務,但幸運的是有幾種不同的實現可用。我有Angular Virtual Scroll ngRepeat directive的經驗,但也有其他人在那裏工作。

1

建議不要一次加載5000條記錄,並嘗試在瀏覽器中顯示相同的記錄。你需要使用分頁。您無法將一些沉重的數據加載到瀏覽器中。它可能會崩潰或不響應。使用分頁一次只能提取10/20/30條記錄並提供分頁按鈕,因此用戶可以點擊並導航到所需的頁面。

你如何能做到分頁的文章: - - 如果你正在使用的WebAPI

+0

同意。即使一次做100個也不算太壞。還應該考慮使用搜索框來查找或過濾結果。有很多幫助包可以幫助你分頁;我傾向於使用引導程序:http://getbootstrap.com/components/#pagination – Porschiey

+1

過濾器在可用性方面是最好的,因爲我們沒有在單個頁面中顯示所有內容 – Sujith

+0

我同意但在加載這些記錄之後.I想要在一分鐘內向他們發送一個常見的味精。所以我需要所有用戶來顯示 –