【发布时间】:2018-01-27 15:43:25
【问题描述】:
我使用 jqGrid 作为大型 mongo 数据库的前端。用户想要使用 jqGrid 过滤器来查看数据库中的数据。我确信当我们实施它时它表现良好。过滤器已被传递并应用于 mongo 数据集,一切正常。
但是现在,如果他们将滚动条向下拖动到网格的中点,则需要很长时间才能获取记录以填充该视图。我打开了与我们的 mongo 数据库接口的 ajax 的日志记录,以记录来自 jqGrid 的页面请求。 mongo 中的这个数据集包含大约 54,000 行。
当网格第一次加载时,它会正确地从数据库中请求第 1 页。如果我缓慢地向下翻页,它会要求它需要填充我的视口的每一页。如果我快速将滚动条拖动到中点并释放它,jqGrid 会在拖动滚动条和释放它的位置之前请求我所在页面之间的每一页。在这种情况下,我从第 1 页开始,它要求第 2、3、4、5、6、...、460 页。这大约是 460 个单独的页面请求。
我以为我们最初对此进行了测试,发现它跳过了不需要的页面,直接进入了我们释放滚动条所需的页面。
我对虚拟滚动的工作原理有什么误解吗?它是否请求从文件开头到我想查看的页面的每一页?我似乎无法在文档中或通过谷歌搜索找到该级别的详细信息,以了解它应该如何运作。
【问题讨论】:
-
最好知道使用的是哪个版本的 jqGrid。这会有很大帮助。 Guriddo jqGrid 没有遍历每一页的例子可以找到here
标签: jqgrid