performance选项卡上的Batarang显示,在应用程序的根目录上,angular调用的函数看起来像这样:function (a){var e,f,i=a.$eval(h),m=hc(i,。
根据batarang的说法,它非常慢,当我在应用程序上遇到更多的行数时,它会减慢应用程序的速度,并使Firefox崩溃(尽管Chrome仍然可以处理它)。那么它到底在做什么呢?我怎么才能修复它呢?
发布于 2013-01-24 02:17:22
在构建动态扩展ngRepeat内容的Angular应用程序时需要考虑的事项。你设置的每个ngRepeat都会设置一个手表。您在该repeat中执行的每个{{ ngModel }}或绑定都会设置另一个监视,依此类推。它们中的每一个都会创建函数和对象实例,并且还需要在每个$digest上进行处理。因此,如果遇到性能问题,您可能需要实现一个自定义指令,该指令在不设置那些多余的监视的情况下写出您的数据,因此您的性能会更好一些。这是我的两分钱。
发布于 2013-09-13 02:18:18
所以我是在这个问题被问到几个月后偶然发现的,当时我认为我也有类似的问题。让我描述一下我的问题和我的解决方案(不涉及指令),您可以看看它是否适用于您的问题。
我在做一张桌子。首先,我会请求告诉我表中有哪些行的信息,然后我会请求更多的信息来填充表的单元格。因此,我将获得第一个请求并将所有行添加到表中,然后请求单元格数据。我会逐行获取单元格数据,但在大型表中,这仍然需要大量请求。当我得到该行的单元格数据时,我会填充它。
这产生了一个非常酷的效果,所有的单元格都有旋转的图标等待数据。但是,这让它变得非常慢。
所以,这是我想出的解决方案。不需要指令。这样做会快得多。这些行在取回所有数据时被填充,$watch仍然在那里,但是您不会一次触发大量的它们,您仍然可以让它们稍后更改数据(在我的表中,您可以编辑表的每个单元格,所以能够在以后轻松地更改数据是很重要的)。
希望这对某些人有帮助。
https://stackoverflow.com/questions/14485828
复制相似问题