我有一个AngularJS Singplepageapp。现在我想显示大量数据集(它应该可以正常使用50.000个数据集):
<ul>
<li ng-repeat="node in data">
<a ng-if="node.children == false" class="lastitem" ng-click="set(node.nodeID)" ng-class="{active: node.nodeID == selectedID}">
<span>{{node.Name}}</span>
</a>
</li>
</ul>
即使是这个简单的模板(它应该会更复杂)也需要浏览器(Firefox)〜45秒才能渲染。此外,浏览器会冻结该时间段。
有没有办法在没有永久消耗的情况下显示这么大的数据?
非常感谢!
答案 0 :(得分:0)
您可以部分加载数据,让我们说1000,当用户滚动到1000以上时,可以获取1000多个并将它们附加到您的视图中。
使用类似:
.directive("loadMoreData", [function() {
return {
restrict: 'ACE',
link: function($scope, element, attrs, ctrl) {
var raw = element[0];
element.scroll(function() {
if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight){
$scope.$apply("loadMoreData()");
}
});
}
};
}])