将整个列表或只是一个页面发送给客户?

Send entire list or just a page to the client?

我一直在从数据库分页中检索数据,它基于过滤器 主要由客户端通过 HttpPost 发送。为了让自己尽可能清楚,我举个例子:

  1. 用户(客户端)打开一个客户搜索页面;
  2. 服务器收到初始请求并查询一个所有客户的列表,过滤前20[=39] =] 并且仅将包含这 20 行的列表、 页面索引 总行数 返回给客户端;
  3. 客户端收到20行,页面索引和行数。 HTML 的呈现方式是 table 的页脚包含分页,根据行数;
  4. 一旦用户点击 link 到页脚上的另一个页面,服务器就会收到新请求并执行与以前相同的查询,但现在 skips前 20 个结果。

到目前为止性能令人满意,唯一的瓶颈是页面浏览可能会导致等待。

但现在它成了一个问题,因为我想实现一个在插入时更新的搜索。用户键入一个字符,结果将被过滤以匹配该文本框中包含的任何内容。

我该怎么办?我应该将 整个 collection 发送给客户吗?

向客户端传输数据之前,通过分页是否达到了最佳理论性能?

尝试使用 asp.net Gridview 控件分页选项

您只从数据库中拉取客户请求的页面(记录限制),并且每当他请求新页面时再次从数据库中拉取它们。

将结果存储在会话中还是内存中完全取决于您的应用程序的运行方式。考虑给定的用例,在数据库本身中应用分页。

谢谢。