2017-08-18 35 views
0

我使用jqGrid作为大型mongo数据库的前端。用户想要使用jqGrid过滤器来查看数据库中的数据。我确信在我们实施它时表现良好。过滤器已经传递并应用于mongo数据集,并且一切工作都正常。jqGrid虚拟滚动,拖动滚动条,请求所有页面

但现在如果他们将滚动条向下拖动到网格中点,则需要很长时间才能获取记录以填充该视图。我打开了与我们的mongo数据库接口的ajax的日志记录,以记录来自jqGrid的页面的请求。 mongo中的这个数据集包含大约54,000行。

当网格第一次加载时,它正确地从数据库请求页面1。如果我慢慢向下翻页,它会要求填写我的视口。如果我将滚动条快速拖到中点并释放它,那么jqGrid会在我拖动滚动条和释放它的位置之前,请求页面之间的每一页。在这种情况下,我从第1页开始,它要求输入第2,3,4,5,6,...,460页。这大约有460个单独的页面请求。

我认为我们最初测试了这个,看到它跳过了它不需要的页面,并直接进入我们发布滚动条所需的页面。

我误解了虚拟滚动的工作原理吗?它是否要求从文件开始到我想查看的页面的每一页?我似乎无法在文档中或通过谷歌搜索找到这种程度的细节,看看它应该如何行事。

+0

这是一个好主意,告诉哪个版本的jqGrid被使用。这将有很大帮助。 [Guriddo jqGrid](http://www.guriddo.net)没有经过每一页的例子可以在[here]找到(http://www.guriddo.net/demo/demos/jqgrid/paging/scrollbar/) default.php) –

回答

0

谢谢托尼。诀窍是你设置滚动选项。真或1(一)有非常不同的行为。从滚动选项的文档“创建动态滚动网格,启用时,页面元素被禁用,我们可以使用垂直滚动条来加载数据,当设置为true时,网格将始终保存从开始到结束的所有项目最后一个点,当scroll设置为一个整数值时(例子1),网格将只保存可见的线。“

+0

这就是我们要求举例的原因,因为重现每一个有问题的情况是非常困难的。 –