我的应用程序每页收到100个项目。对于分页,我使用自定义解决方案,为接下来的100个项目进行新的AJAX调用。获取数据所需的时间约为400毫秒。但似乎显示器需要时间来渲染。我读的原因可能是ng-repeat
。我无法使用track by
,因为我没有包含所有唯一项的列。我还读了几个我可以使用limit
的解决方案,但由于我已经使用了服务器端分页,所以我不需要限制。在这种情况下,如何改善渲染时间?
答案 0 :(得分:1)
{strong>不的100个项目应该是ng-repeat
的问题,但这取决于您的网页的完整外观。
ng-repeat
创造了许多手表,使角度的脏检查(消化过程)更长。
通常,您使用ng-repeat
来显示数据而不是创建输入,因此您不需要双向绑定(单向就足够了。)
所以bindonce是一个很好的库,可以帮助切割不需要的手表。
而不是做这样的事情:
<ul>
<li ng-repeat="person in Persons">
<a ng-href="#/people/{{person.id}}"><img ng-src="{{person.imageUrl}}"></a>
<a ng-href="#/people/{{person.id}}"><span ng-bind="person.name"></span></a>
<p ng-class="{'cycled':person.generated}" ng-bind-html-unsafe="person.description"></p>
</li>
</ul>
你应该这样做:
<ul>
<li bindonce ng-repeat="person in Persons">
<a bo-href="'#/people/' + person.id"><img bo-src="person.imageUrl"></a>
<a bo-href="'#/people/' + person.id" bo-text="person.name"></a>
<p bo-class="{'cycled':person.generated}" bo-html="person.description"></p>
</li>
</ul>
答案 1 :(得分:0)
如果您有大量的动态数据,请查看以下链接...它可能对您有所帮助。
Angular ng-class performance issue when too many elements in DOM