预排序数据或Angular orderBy哪个性能更好

Which performs better, pre sorting data or Angular orderBy?

本文关键字:性能 更好 orderBy Angular 排序 数据      更新时间:2023-09-26

如果我有一组数据交给我,但可能没有排序,那么最好在我的控制器中自己对这些数据进行排序,还是只允许angular使用orderBy在我的ng重复过滤器中处理排序?

我知道的事情:

  1. 一旦我从API加载数据,数据就不会改变。也就是说,新项目不会添加到集合中,项目不会从集合中删除,我感兴趣的按字母顺序排序的名称字段永远不会改变。因此,我只需要在每次加载页面时对这些数据进行一次排序。

  2. 显示数据的视图永远不需要更改顺序。也就是说,无法更改排序的方向或按不同的列进行排序。

换句话说,一旦排序,我的数据顺序将保持不变。我目前正在使用orderBy,但我想知道angular是否在浪费处理时间,毫无理由地看着元素排序。在交给ng重复之前,在我的控制范围内只排序一次可能更安全吗?如果我这样做,即使我使用名称过滤器或使用ng-show/hide/If临时隐藏一些元素,项目也会肯定保持这种顺序吗?

谢谢。

我建议在加载到屏幕上之前在控制器中进行排序,因为您的数据不是动态的。在每个摘要周期中,ng-repeat指令都会在屏幕上重新发送数据,在这里添加orderBy过滤器肯定会带来开销,如果你知道这些数据永远不会改变,我也建议缓存数据。

在工厂/服务中排序如果您有很多数据,那么只需在控制器中注入工厂即可。