4

我有一个包含大量数据的海量数据,并尝试在 AngularJS 的表中显示这些数据(带有过滤和排序)。为此,我尝试使用 ng-Table,但是当数据太多(> 1000 行)时,它在远程服务器上开始变慢,当数据太多(> 5000 行)时,带有该表的页面甚至无法在本地加载机器。据我了解,过滤和排序需要从数据库加载所有数据,可能有人知道一些技巧而不是加载所有数据。或者可能有人知道 Angular 的另一个表格插件。

谢谢你的帮助。

4

3 回答 3

5

您需要的信息在这里:http ://tech.small-improvements.com/2013/09/10/angularjs-performance-with-large-lists/

建议是:

  1. 对行进行分页,无论如何他们一次看不到所有 2000 行
  2. 在没有数据绑定的情况下呈现列表
  3. 不要使用内联方法调用来计算数据
  4. 使用两个列表(一个用于显示视图,一个作为数据源)
  5. 使用 ng-if 而不是 ng-show 来获取其他模板
  6. 不要使用 AngularJS 指令 ng-mouseenter、ng-mouseleave 等。
  7. 过滤的调整提示:使用 ng-show 隐藏被排除的元素
  8. 过滤的调整提示:去抖动输入

您的过滤和排序可能是问题所在,在控制器中应用过滤器并在那里对其进行排序。

于 2014-08-09T14:03:10.233 回答
3

最近我开始研究这个新的表格组件#ngTasty,这里有一些示例如何通过客户端分页/排序http://zizzamia.com/ng-tasty/#Table和服务器端分页/排序http://zizzamia 使用它。 com/ng-tasty/#TableServerSide。如果它仍然很慢,我将很乐意解决并提高性能。

于 2014-08-22T18:51:40.117 回答
1

为了获得最佳的用户体验和处理大数据,我建议使用无限滚动或分页。

这是一个很好的角度(无限滚动) http://www.michaelbromley.co.uk/blog/108/paginate-almost-anything-in-angularjs

对于分页,一篇好文章 http://www.michaelbromley.co.uk/blog/108/paginate-almost-anything-in-angularjs

试试这些。

于 2014-08-09T15:08:49.323 回答