ngIf减慢了应用程序

时间:2014-11-25 10:50:36

标签: angularjs angularjs-directive angularjs-ng-repeat angular-ng-if

我创建了一种TabControl,在其中我激活了Pages并根据PageNumber我显示了一个表(ng-repeats)。该表是一个自己的指令(自制的Grid-Directive)。

现在我体验到,如果我的tabpages更少,那么应用程序比我有更多tabpages更快 - 尽管所有页面都使用ngIf并且在设置相应的PageNumber之前不会呈现。

我相信,这是因为ngIf编译它的内容尽管它不应该,但是在使用分析器时我无法完全理解它。我只是看到," compileNodes"被召唤了很多。

有没有人经历过同样的事情?是否有解决方法的想法?

修改 还有一个有趣的是,我第一次进入tabcontroll(单页应用程序内的链接)速度更快,接下来的速度更慢。好像记住某些东西,虽然整个选项卡式控件在导航到另一个内容时会被删除。

编辑2: 我还在努力解决这个问题。它甚至可能是ngRepeat,因为我在另一个TabControl中显示我的TabControl,我使用ngRepeat。有趣的是:第一次访问我的页面时它很快,然后我点击另一个页面,当我回来时它很慢! ngRepeat是否在缓存中保留了一些东西?浏览器配置文件告诉我jQuery的data_user中有一些东西 - >缓存哪些是免费的(在Chrome中每次点击最多可达9MB数据!!)

1 个答案:

答案 0 :(得分:0)

由于其标签视图使用ng-switch而非ng-if,因为它必须贯穿所有情况才能显示标签,而不是跳转到要显示的标签。