C# 分页的最佳实践是什么?
我正在.NET中做一个MVCWeb项目,我想这是显示列表和分页的最佳方式。我有三个选择C# 分页的最佳实践是什么?,c#,asp.net-mvc,datatables,jquery-pagination,C#,Asp.net Mvc,Datatables,Jquery Pagination,我正在.NET中做一个MVCWeb项目,我想这是显示列表和分页的最佳方式。我有三个选择 我可以使用Jquery表(Data table JS)显示该表 我可以使用MVC分页 使用SP手动处理分页 选项1将使用AJAX一次获取所有数据,表js将自行处理分页。我们不必担心分页,但是如果它是一个需要处理的巨大数据集,那么使用它是否明智呢???,因为每次它都会加载所有数据 选项2将仅获取需要显示的数据(按集合设置),但每次可能会触发服务器端的请求。(这将在控制器级IPagedList中管理分页) 选项3
最好的方法是什么?感谢您的解释?一个显而易见的解决方案是选择2。但在这种模式中,用户可以配置每页的记录,这样,如果每页的记录较少,它将立即在浏览器中加载,并快速从服务器中提取数据。用户永远不会看到加载,他们希望尽快得到结果 在这里,如果您提供排序功能,还需要注意网格中的排序。意味着您需要在整个数据集中排序,而不仅仅是在当前数据集中排序 此外,还可以在网格上提供过滤器。同样,您需要过滤整个数据集
因此,这种方法既适用于小数据集,也适用于大数据集。根据您的选择
Datatable
是一个非常好的选项,它还附带了更多其他功能,如筛选、搜索、排序、信息等
根据数据集的大小,您应该在客户端实现和服务器端实现之间进行选择。如果您的行数少于4000,我建议您在客户端使用datatables
但如果您有非常大的数据集,请确保对datatable使用服务器端实现。
这里给出了如何为
datatable
实现服务器端模块的步骤,我认为最好只加载所需的数据。为什么要加载根本不可见的数据
考虑如果允许GUI框架处理客户端上的分页:
- 你根本不必为此烦恼。此外,过滤和排序也很可能在客户端处理
- 对于初学者来说,它更容易实现
- 如果您的应用程序只在intranet上运行,那么(从性能角度来看)让客户机处理更大的数据集是完全可以的
- 您还必须实现排序和筛选!如果在服务器上分页,则不能在客户端上进行排序和筛选。这种实现可能相当麻烦
- 它加载数据的速度要快得多,因为您不会收到任何不会以任何方式显示的数据
在可能重复的“是”中提到了更多的优点,因为我觉得这取决于数据。但我对这个项目的可扩展性表示怀疑。目前该项目没有大数据集。但如果我们在考虑未来,谁知道客户是否想扩大业务。这将是一个架构方面的问题。我不得不以艰难的方式(不幸的是多次)学习:客户拥有比您预期的更多的数据。永远!所以最好从一开始就做……是的,我同意你的看法。我也会参考服务器端实现。是的,请。因为很多人不知道数据表中的大型数据集还有另一种解决方法。