如何在angularJS中渲染大量数据集?

时间:2014-10-27 08:51:08

标签: javascript angularjs performance browser

我有一个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秒才能渲染。此外,浏览器会冻结该时间段。

有没有办法在没有永久消耗的情况下显示这么大的数据?

非常感谢!

1 个答案:

答案 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()");
                }
            });
        }
    };

}])

Source