IEnumerable vs DataTable服务器端

问题描述 投票:0回答:1

每次我从控制器向视图传递我使用IEnumerable的数据。但是今天,我正在考虑如果表中有成千上万的行会发生什么情况,...这会使处理器超负荷吗?还是会使用所有的内存?]

所以现在我在考虑是否使用jquery DataTable及其服务器端选项通过分页而不是一次全部带来行。

这是个好主意还是如果我继续使用IEnumerable没问题

asp.net asp.net-core datatables asp.net-mvc-viewmodel
1个回答
0
投票

在一个HTML视图中渲染数百万行太多了。甚至成千上万将是非常缓慢的。涉及几个部分:

  • 从某种数据源(例如数据库)中获取数据
  • 在服务器端处理数据(创建html)
  • 将视图发送到客户端(网络)
  • 在浏览器中呈现html

通常,渲染部分是第一个变慢的部分。尝试渲染10.000s行可能会冻结用户浏览器,而服务器组件通常仍可以正常工作(假设您一次没有太多用户)。

只要我们只谈论典型的台式机用户,就可以通过网络发送数据没有问题。如果您要定位移动设备,这是一个问题。

在服务器上创建html视图通常非常快。如果您有很多用户,那么数据库将成为问题(因为扩展比c#部分更困难)。

简而言之:是的。如果要支持大型数据集,则必须确保

  • 一次仅渲染其中一部分(通常称为dom虚拟化)
  • 仅将其中一部分发送到浏览器(分页)

您可以应用这两种策略中的一种或两种。

© www.soinside.com 2019 - 2024. All rights reserved.