Javascript 100+;在ui网格中,具有10行的列的渲染性能最差
如果我有1000多行和10到30列,它就可以正常工作, 但是如果我有10行200多列,渲染需要2到3分钟 一段时间后,水平滚动时数据不可见。 最终,页面变得没有响应 代码如下:Javascript 100+;在ui网格中,具有10行的列的渲染性能最差,javascript,jquery,angularjs,node.js,angular-ui-grid,Javascript,Jquery,Angularjs,Node.js,Angular Ui Grid,如果我有1000多行和10到30列,它就可以正常工作, 但是如果我有10行200多列,渲染需要2到3分钟 一段时间后,水平滚动时数据不可见。 最终,页面变得没有响应 代码如下: $http.post($scope.url + "/getPagingRecordImportedTable", { dbname : $stateParams.dbname, tableName : tablename, pageNumber : 1 }).success(function(r
$http.post($scope.url + "/getPagingRecordImportedTable", {
dbname : $stateParams.dbname,
tableName : tablename,
pageNumber : 1
}).success(function(response) {
$scope.names = response.records;
$scope.mdata = response.metadata;
$scope.gridOptions.data = response.records;
var columnsize = 0;
for (var obj in $scope.mdata) {
if ($scope.mdata[obj]['columnsize'] > 20) {
columnsize = 20;
} else {
columnsize = $scope.mdata[obj]['columnsize'];
}
$scope.columns.push({
field : $scope.mdata[obj]['columnname'],
width : columnsize
});
}
console.log("-----------Data received");
})
触发http请求后,会立即打印收到的------数据
日志,但渲染数据会花费太多时间
如何提高绩效?或者有没有其他用于大行和200多列的API 去年我不得不处理一件类似的事情,并在一篇文章中总结了我的想法 基本上,使用聚合物组件,尽管它需要一些重构(取决于您的用例)
如果您不能或不想使用
请尝试尽可能多地使用。我可以通过让观察者对行和列分别触发来解决此问题。
我之前在一起更新gridOptions.colDefs和gridOptions.data。然后将其更改为:
它就像魅力一样。显然,可以通过点击并测试数据和列的长度来调整超时值。Paginate。如果您希望用户体验“无缝”加载,那么实现ajax以隐藏分页;数据在用户滚动时加载。如果您必须在不分页的情况下显示那么多行,我建议您使用超时一次渲染x行。而不是用angular来做这件事。但分页显然是最好的答案…请告诉我与ui网格相关的内容,因为我在我的项目中实现了它。