我创建了一种TabControl,其中我激活Pages并根据PageNumber我显示一个表(ng-repeats)。这个表格是一个自己的指令(一个自制的Grid-Directive)。ngIf减慢应用程序
现在我体验到,如果我的tabpages较少,应用程序比我拥有更多tabpages的速度更快 - 尽管所有页面都使用ngIf,并且在设置相应的PageNumber之前不会呈现。
我相信,这是因为ngIf编译它的内容事件,尽管它不应该,但当我使用探查器时,我不太明白它的意义。我只是看到,“compileNodes”被调用了很多。
有没有人遇到过相同的问题?有解决方法的想法吗?
编辑: 什么也是有趣的是,在第一时间我去tabcontroll(一个单页的应用程序中的链接)它的速度更快,以下时间很慢。就好像某些东西被记住了,尽管当浏览到其他内容时整个标签控件被删除了。
编辑2: 我仍然试图弄清楚。它甚至可以是ngRepeat,因为我在另一个TabControl中显示我的TabControl,这是我用ngRepeat做的。有趣的是:第一次访问我的页面时,速度很快,然后我点击另一个页面,当我回来时它很慢! ngRepeat是否将某些内容保存在缓存中?该浏览器的个人资料告诉我,有在jQuery的data_user一些事情 - >高速缓存未free'd(在Chrome可达数据9MB的每次点击!!)
您是否尝试过使用batarang作为性能计数器? https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk – 2014-11-25 11:00:02
你有每一个页面加载到DOM中,然后用'ng-if's删除? – user2943490 2014-11-25 11:16:40
@Alex Choroshin:是的,我使用了Batarang - 但它并没有给我提示,为什么这会比其他一些页面移动绑定等更长。 – NoRyb 2014-11-25 12:04:57