我有一个完成的AngularJS应用程序,它基本上显示了一个通过$resources
加载了许多(400+)行的表。数据是可排序和可搜索的,应用程序加载有点慢(2s +),是的,我使用了$cacheFactory
。我很瘦,这是一个RAM问题。
我想过只加载100个条目并在搜索,排序或滚动后自动重新加载。这会加速应用程序,但会使搜索和排序变得非常慢。
你将如何在Angular中处理这个问题?
答案 0 :(得分:6)
在处理大型数据集时,在确定哪些数据应该是双向数据绑定时需要非常小心,否则你将使用$ watch表达式压倒DOM和cpu。
我创建了一组指令,只在需要的地方绑定一次数据。
这里有三个我做过的链接应该有用:
set-attr - 在具有指定值的元素上设置任何属性,并且不添加监视侦听器。你可以使用它来设置类或数据属性或ID
set-if - 使用此代替show或hide或switch。这是一个只评估一次的if语句,它将从DOM中删除项目
set-repeat - 这个很棒,特别是如果你重复的内容不会改变,那么它只会迭代一次。
我创建了其他的set-text,set-html,set-href,set-source,我发现我经常使用它们,因为大多数数据不需要是双向数据绑定。