Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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
Asp.net mvc 如何正确实现分页?_Asp.net Mvc_Wcf_Pagination_Sql Server 2012 - Fatal编程技术网

Asp.net mvc 如何正确实现分页?

Asp.net mvc 如何正确实现分页?,asp.net-mvc,wcf,pagination,sql-server-2012,Asp.net Mvc,Wcf,Pagination,Sql Server 2012,我目前正在开发一个MVC4应用程序,它可以访问一组提供内容的wcf服务 我有一个列出产品的页面。此页面具有称为无限滚动的分页功能,因此当您向下滚动页面时,将加载产品 我想知道实现这种分页功能的最佳方法是什么。数据源是sql server。在我看来,选项有: 在sql server 2012层分页-仅返回所需的记录集,并通过wcf将其反馈到堆栈中,并输入MVC应用程序以显示 作为选项1,还包括WCF层的缓存,以便长期缓存记录集。这意味着缓存中将存储多个记录集,而不是一个大的记录集 缓存所有数据,并

我目前正在开发一个MVC4应用程序,它可以访问一组提供内容的wcf服务

我有一个列出产品的页面。此页面具有称为无限滚动的分页功能,因此当您向下滚动页面时,将加载产品

我想知道实现这种分页功能的最佳方法是什么。数据源是sql server。在我看来,选项有:

  • 在sql server 2012层分页-仅返回所需的记录集,并通过wcf将其反馈到堆栈中,并输入MVC应用程序以显示
  • 作为选项1,还包括WCF层的缓存,以便长期缓存记录集。这意味着缓存中将存储多个记录集,而不是一个大的记录集
  • 缓存所有数据,并对缓存项进行分页,从WCF服务缓存数据返回子集
  • 注意:我使用asp.net进行缓存


    因此,我正在寻找关于这方面最佳实践的反馈。

    您可能的数据集有多大?我认为这就是缓存的问题所在,如果可以将所有内容都保存在内存中,那么就执行选项3,我不认为选项2有什么意义,因为如果长期缓存,很可能会缓存所有内容。如果您想实现#2,我会在短时间内进行缓存(时间范围取决于站点的繁忙程度)。

    当我出于测试目的尝试此方法时,我遵循了以下指南:


    我不知道这是否是实现无限滚动的最佳方式,但它至少是一个概念证明。

    此更改是项目的一个新阶段,目前我将所有数据保存在缓存中,没有问题。