分页的最佳做法是什么?

时间:2018-09-21 05:47:22

标签: c# asp.net-mvc datatables jquery-pagination

我正在用.NET进行MVC Web项目,这是一种思考显示列表和分页的最佳方法。我有3个选择

  1. 我可以使用Jquery Tables(数据表JS)显示该表。
  2. 我可以使用MVC分页。
  3. 使用SP手动处理分页。

选项1将使用AJAX一次获取所有数据,而表js将处理分页本身。我们不必担心分页,但是如果要处理的数据量很大,明智的做法是使用此???,因为每次它将加载所有数据。

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

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

那么什么是最佳选择,我们必须考虑两种情况。那将是大数据集还是小数据集。

执行此操作的最佳方法是什么?欣赏任何解释吗?

3 个答案:

答案 0 :(得分:1)

一个明显的解决方案是使用选项2。但是,用户可以在其中配置每页的记录,这样,如果每页的记录较少,则它将立即加载到浏览器中,并快速从服务器中提取数据。用户永远不会准备尽快看到他们想要的结果。

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

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

因此,这种方法将适用于小型数据集和大型数据集两种情况。

答案 1 :(得分:0)

根据您的选择,

  
      
  1. 我可以使用Jquery Tables(数据表JS)显示该表。
  2.   

Datatable是一个非常不错的选择,它具有更多其他功能,例如过滤器,搜索,排序,信息等。

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

但是,如果您的数据集非常庞大,请确保对数据表使用服务器端实现。 这里的link提供了如何为datatable

实现服务器端模块的步骤。

答案 2 :(得分:0)

我想总是总是最好只加载您需要的数据。为什么要加载根本不可见的数据?

请考虑是否让GUI框架在客户端上处理分页:

  • 您根本不必理会它。此外,过滤和排序也很可能在客户端进行处理。
  • 对于初学者来说更容易实现。
  • 如果您的应用程序仅要在Intranet上运行,那么从性能的角度来看,让客户端处理更大的数据集可能是完全可以的。

考虑考虑自己是否可以分页:

  • 您还必须实现排序和过滤!如果要在服务器上分页,则不能在客户端上进行排序和筛选。这种实现可能很麻烦。
  • 它会更快地加载其数据,因为您不会收到任何无法显示的数据。

因此,您应该采取的措施高度取决于数据,基础架构和受众。

Pagination: Server Side or Client Side?上提到了更多的优点