1

我有一个完成的 AngularJS 应用程序,它基本上显示了一个表,其中有许多(400+)行通过$resources. 数据是可排序和可搜索的,应用程序加载速度有点慢(2s+),是的,我使用了$cacheFactory. 我瘦了,这是内存问题。

我想只加载 100 个条目并在搜索、排序或滚动后自动重新加载。这将加快应用程序的速度,但会使搜索和排序变得非常缓慢。

你会如何在 Angular 中处理这个问题?

4

1 回答 1

6

在处理大型数据集时,在决定哪些数据应该是双向数据绑定时,您需要非常小心,否则您将使用 $watch 表达式压倒 DOM 和 cpu。

我创建了一组指令,只在需要的地方绑定一次数据。

这是我制作的三个链接,应该会有所帮助:

https://gist.github.com/btm1

set-attr - 在元素上设置任何属性一次,并且不添加监视侦听器。您可以使用它来设置类或数据属性或 ID

set-if - 使用它而不是显示或隐藏或切换。这是一个 if 语句,只计算一次,并将从 DOM 中删除项目

set-repeat - 这个很棒,特别是如果你重复的内容不会改变,所以它只会迭代一次。

我创建了其他的 set-text、set-html、set-href、set-source,我发现我经常使用它们,因为大多数数据不需要双向数据绑定。

于 2013-10-12T09:33:20.653 回答