ng对大数据重复崩溃



我有一个对象,里面大约有100k个对象。我使用ng repeat来列出这些对象。问题是,我也有ng重复的过滤器,每当我在过滤器中做出特定的设置时,我的UI就会冻结。我该如何解决这个问题?

<h3>Filters</h3>
<input type="number" placeholder="start id" ng-model="start_id">
<input type="number" placeholder="number of items" ng-model="quantity">
<input type="text" placeholder="enter name" ng-model="name">
<ul ng-repeat="data in json | custom:start_id:quantity:name">
<li>{{::data.id}} {{::data.name}} -------------- {{::data.timeStamp}}</li>
</ul>
myApp.filter('custom', function() {
return function(input, start_id,quantity,name) {
if (!input) return input;
var len=0;
var result = {};
angular.forEach(input, function(value, key) {
if ((start_id===undefined || key>=start_id) && (quantity==undefined || len<quantity)) {
if(name!==undefined){
var actual = value.name.toLowerCase();
var expected = name.toLowerCase();
if (actual.indexOf(expected) !== -1){
result[key] = value;
len++;
}
}else{
result[key] = value;
len++;
}
}
});
return result;
}
});

您可以采取两种方法。

  1. 寻呼,如果您的用户接受;

  2. 虚拟列表,例如:https://github.com/2fdevs/angular-virtual-list

最新更新