页面中有近2000行。我使用AngularJS过滤器来搜索包含类型字符串的一些项目。问题是在输入控件中输入一个字符时效率很差。 你们有很好的想法如何改进这个过滤器? 这是搜索代码:
输入框:
<input class="searchText ng-cloak" ng-model="searchText.ValueName" placeholder="Search Value" />
表格中的重复:
<tr ng-repeat="registry in currentSettings | filter:searchText" ....
字符串filter:searchText
用于过滤。
答案 0 :(得分:1)
瓶颈可能是添加和删除DOM
中的元素。通过使用css隐藏元素来避免这种情况。而不是过滤ng-repeat,使用ng-show:
<li ng-repeat="registry in currentSettings" ng-show="([registry] | filter:searchText).length > 0">
http://php.quicoto.com/use-ng-show-filtering-data-angularjs/
还有virtual ng-repeat plugin,它只添加将要呈现的dom节点以获得更好的性能
答案 1 :(得分:0)
我还建议在转发器中使用track by
。它将防止不必要的元素移除和重新插入,并在某些情况下导致速度的显着提高。只要确保你跟踪一些独特的财产。