Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分页的最佳实践是什么?_C#_Asp.net Mvc_Datatables_Jquery Pagination - Fatal编程技术网

C# 分页的最佳实践是什么?

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

我正在.NET中做一个MVCWeb项目,我想这是显示列表和分页的最佳方式。我有三个选择

  • 我可以使用Jquery表(Data table JS)显示该表
  • 我可以使用MVC分页
  • 使用SP手动处理分页
  • 选项1将使用AJAX一次获取所有数据,表js将自行处理分页。我们不必担心分页,但是如果它是一个需要处理的巨大数据集,那么使用它是否明智呢???,因为每次它都会加载所有数据

    选项2将仅获取需要显示的数据(按集合设置),但每次可能会触发服务器端的请求。(这将在控制器级IPagedList中管理分页)

    选项3还将仅从数据库级别获取我们需要的数据。与选项2相同,每个页面更改都将限制服务器请求

    那么什么是最好的选择,我们必须考虑两种情况。如果它是大数据集,如果它是小数据集,这将是


    最好的方法是什么?感谢您的解释?

    一个显而易见的解决方案是选择2。但在这种模式中,用户可以配置每页的记录,这样,如果每页的记录较少,它将立即在浏览器中加载,并快速从服务器中提取数据。用户永远不会看到加载,他们希望尽快得到结果

    在这里,如果您提供排序功能,还需要注意网格中的排序。意味着您需要在整个数据集中排序,而不仅仅是在当前数据集中排序

    此外,还可以在网格上提供过滤器。同样,您需要过滤整个数据集


    因此,这种方法既适用于小数据集,也适用于大数据集。

    根据您的选择

  • 我可以使用Jquery表(Data table JS)显示该表
  • Datatable
    是一个非常好的选项,它还附带了更多其他功能,如筛选、搜索、排序、信息等

    根据数据集的大小,您应该在客户端实现和服务器端实现之间进行选择。如果您的行数少于4000,我建议您在客户端使用datatables

    但如果您有非常大的数据集,请确保对datatable使用服务器端实现。
    这里给出了如何为
    datatable

    实现服务器端模块的步骤,我认为最好只加载所需的数据。为什么要加载根本不可见的数据

    考虑如果允许GUI框架处理客户端上的分页:

    • 你根本不必为此烦恼。此外,过滤和排序也很可能在客户端处理
    • 对于初学者来说,它更容易实现
    • 如果您的应用程序只在intranet上运行,那么(从性能角度来看)让客户机处理更大的数据集是完全可以的
    如果你自己处理分页,请考虑:

    • 您还必须实现排序和筛选!如果在服务器上分页,则不能在客户端上进行排序和筛选。这种实现可能相当麻烦
    • 它加载数据的速度要快得多,因为您不会收到任何不会以任何方式显示的数据
    因此,您应该采取什么措施在很大程度上取决于您的数据、基础设施和受众


    可能重复的“是”中提到了更多的优点,因为我觉得这取决于数据。但我对这个项目的可扩展性表示怀疑。目前该项目没有大数据集。但如果我们在考虑未来,谁知道客户是否想扩大业务。这将是一个架构方面的问题。我不得不以艰难的方式(不幸的是多次)学习:客户拥有比您预期的更多的数据。永远!所以最好从一开始就做……是的,我同意你的看法。我也会参考服务器端实现。是的,请。因为很多人不知道数据表中的大型数据集还有另一种解决方法。