如何处理Angular中的大数据

时间:2013-10-11 20:05:47

标签: javascript angularjs xmlhttprequest

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

这里有三个我做过的链接应该有用:

https://gist.github.com/btm1

set-attr - 在具有指定值的元素上设置任何属性,并且不添加监视侦听器。你可以使用它来设置类或数据属性或ID

set-if - 使用此代替show或hide或switch。这是一个只评估一次的if语句,它将从DOM中删除项目

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

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