在HTML表angularjs或服务器端进行过滤操作



我们的项目处理大量记录,我们使用普通表,但只向用户显示较少数量的记录。这意味着我们在后端有1500万条记录,但只有1000条记录显示给用户。

如果用户想搜索特定的记录,那么他们可以使用过滤操作。我们已经在angularjs中实现了过滤功能,即创建了自定义服务来对大型记录进行过滤操作。问题是我们在$scope变量中保存了大量的记录。

//$scope.filteredVldData is a array which  contains 15 million records.
 var result = filterService.filter($scope.filteredVldData);
//Filter Service
var filterApp = angular.module('filterModule', []);
filterApp.factory('filterService', function () {
    return {
        filter: function (filterData) {
//For Equals logic
//For not equals logic
//For Contains logic
            }
}});

过滤器操作工作正常。它给出了期望的结果。我不确定在客户端$scope变量中保留1500万条记录以执行过滤操作是否是一种好方法。

每条记录有15列,所以我在客户端保持巨大的记录大小。

由于记录量巨大,我计划将过滤器逻辑移动到服务器端,每当过滤器应用时,它将转到后端并将结果绑定到表。

在考虑数百万条记录时,哪一个是在普通html表中进行过滤操作的最佳方法?在客户端还是服务器端?

这取决于该记录的大小以及您的客户机将使用的硬件类型。对于普通的个人电脑/笔记本电脑作为客户端,在服务器端进行过滤/排序操作总是好的,并且只显示需要显示的记录的可行子集。

另一点是——如果你的客户端有一个本地存储系统,你需要离线数据搜索/查看,那么你可能可以先做一个同步,将数据存储在本地存储(再次,如果这对客户端来说不是很大),然后过滤和检索只子集到内存和显示。

最新更新