3

背景:我一直致力于在我们的应用程序中转换几个页面以使用 AngularJS 作为主要架构大修的尝试。到目前为止,事实证明 Angular 对我很友好,虽然它的学习曲线非常陡峭,但没关系。

在我们的一个主页中,我们有 slickgrid,我决定使用 ng-grid 而不是 slickgrid,以免在我的第一关头疼。由于我们应用程序的性质,相同的数据将在整个页面生命周期中多次过滤/取消过滤。整个数据集将始终保持完全相同,到目前为止只有 20-40 个数据点。

通过为gridOptins.data. 但是,由于内存仅在几个过滤周期内从 ~20MB 增加到 ~64MB,因此性能受到严重影响。网格完成重新渲染变得越来越慢(> 40ms)。时间线分析器显示,每次更改网格数据时都会创建大量 DOM。

我已经说服自己经常从 ng-grid 中删除/插入数据点是不切实际的,我正在寻找一些解决这个问题的方法。一个只是隐藏数据点,但我还没有看到说明这一点的示例。

也欢迎其他建议。

编辑:这是plunkr:

http://plnkr.co/edit/dgA2HW

尝试经常单击过滤器并观察总内存自行增加。

4

1 回答 1

0

您可以使用网格中的 filterText ...

$scope.randomfilter = function() {

  $scope.gridOptions.$gridScope.filterText = Math.ceil(24 * Math.random());
};

$scope.resetfilter = function() {
  $scope.gridOptions.$gridScope.filterText = "";
};

http://plnkr.co/edit/DmgIS9?p=preview

于 2013-08-29T17:17:11.093 回答