IE11使用AngularJS的ng-repeat渲染缓慢/冻结
目前,我有一个非常微妙的问题要用IE11和AngularJS解决。
我的页面由两个嵌套的ng-repeat组成,以创建一个选项卡集,其中任何选项卡中都有一个表。
这里的代码:http :
//pastebin.com/0fffPz5Z
在代码中,每个应用程序的对象都有大约1.000个项目的相关对象。有了Chrome,Safari和Mozilla,我没有问题,一切都超级快!使用IE11,页面运行缓慢,而IE11则显示页面脚本速度太慢的消息…。
我已经使用以下结果创建了IE11接口的配置文件:https ://www.dropbox.com/s/y5xuystxht6gjkr/IE11-interface-
profiling.png?dl
=0
这是另一个IE11的错误吗???对不起,我的英语,谢谢您的任何建议。
编辑:当前(出于“调试”目的)我删除了所有td的内容… IE11仍然太慢。:(
<tabset ng-show="!applicationsLoading"> <tab ng-repeat="application in applications track by application.name">
<tab-heading>
<em class="fa fa-clock-o fa-fw"></em> {{ application.name }}
</tab-heading>
<div>
<!-- START table responsive-->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in application.items track by item.itemid">
<td></td>
<td></td>
<td>
</td>
<td></td>
<td></td>
<td>
</td>
<!-- Graph or History column -->
<td>
</td>
</tr>
</tbody>
</table>
</div>
<!-- END table responsive-->
</div>
</tab>
</tabset>
回答:
AngularJs对每页呈现绑定有限制(在某些文章中,您会发现它大约有2000个绑定)。目前,您刚刚遇到这种情况。chrome和Mozilla能够顺利运行的原因是,针对它们的DOM操作得到了更好的优化。为了提高性能,请尝试:
- 避免在ng-repeat中使用sort(在插入之前对其进行排序)
- 使用一次性绑定(::语法)
- 删除不必要的手表
- 优化摘要周期
- 使用分页
- 用ReactJs组件替换angularjs ng-repeat(如果确实有大量数据)
以上是 IE11使用AngularJS的ng-repeat渲染缓慢/冻结 的全部内容, 来源链接: utcz.com/qa/404426.html