2016-01-25 56 views
3

我有一個包含300行(有限),20列的表。 - 使用Ag-GridAngularJS - 數據表的最佳實踐

此表格還有8個過濾器,每個過濾器都是平均50行的多重選擇。 - 與isteven多選

這個模塊是非常非常慢,和Batarang顯示範圍7000到20000 $$觀察員。這個模塊也是系統中最重要的。

我更改了過濾器以便根據需要動態加載,但它仍然非常慢。 (在Chrome上,有8個內核i7和16GB RAM)

顯示海量數據的表的最佳做法是什麼?

+0

您是否聽說過分頁? – Damiano

+0

加速的快速取勝可以通過角度語法{{:: myVar}}查看您可以使用一次性綁定的位置https://docs.angularjs.org/guide/expression – jornare

+0

@Damiano嗯,但不幸的是是我老闆想要的。成百上千行中只有300個。 – Amit

回答

2

我建議你在尋找到使用虛擬化技術,例如ui-grid一個網格,你可以找到一個大的數據集的例子here

0

您可以使用React這個。 React的表現要好得多。 React是MVC中的V,因此您可以使用React + AngularJS。

你也可以試試這個AngularJS庫 - angular-datatables

3

您可以使用一次數據綁定。在視圖中使用{{::myVal}}而不是{{myVal}}它應該減少觀察者的數量。

More

你可以做懶渲染或虛擬重複減少DOM的節點數必須創建。 (這可能是您的應用程序的瓶頸)

More

最後,你可以用自己的實現角度編譯的方法,並使用$eval$scope變量,但不將其加入角應用範圍編譯自己的模板。它可以比角度解決方案快得多,因爲您可以避免所有檢查併爲您的應用程序優化它,並將其呈現爲純粹的html,而不用所有的角魔法,這會使得這一點更快。

+0

感謝您的詳細解答。對於我來說主要的問題是我無法控制表本身(這是一個我不想改變的指令),我知道一次綁定,但是現在我無法創建自己的表,因爲這個表有很多特性。 – Amit