【发布时间】:2012-07-24 20:50:08
【问题描述】:
我将 jqGrid 与 LOAD ONCE 一起使用,然后在客户端进行分页。当我在过滤器工具栏中添加时,应用任何类型的过滤器后分页都会变得非常慢。
$(gridElement).jqGrid({
postData: post,
loadComplete: function (data) {
onLoadComplete(data);
},
gridComplete: function () {
onGridComplete();
},
datatype: function (pdata) {
dataSource(pdata);
},
colNames: columnNames,
colModel: columnModel,
rowNum: 10,
rowList: [10, 20, 30],
viewrecords: true,
pagination: true,
pager: pagerElement,
loadonce: true,
sortorder: "desc",
sortname: 'id',
cellEdit: false,
search: true,
gridview: true,
//rownumbers: true
});
$("#jqGrid").jqGrid('filterToolbar',{
stringResult : true,
searchOnEnter : false });
知道为什么会这样吗?在触发任何常见事件(如 onPaging、onGridComplete 等)之前,单击分页按钮会有延迟。
请注意,一旦网格完成,数据类型属性将设置为“本地”。
我的猜测是它会在您每次页面时尝试过滤(或者它一次只过滤一页?不确定)。但是可以禁用吗?
谢谢。
【问题讨论】:
-
你有这方面的活生生的例子吗?
-
问题的根源可能是
onLoadComplete和onGridComplete函数。为什么你需要这两个功能而不是只使用onLoadComplete?为什么你使用datatype作为函数?此外,您使用已发布的colModel就像columnModel一样。需要了解您所做的工作才能为您提供帮助。您能否在问题中包含更多详细信息(包含代码)。最好的是重现您遇到的问题的演示, -
我认为 Enzino 发布的内容可能是问题所在……客户端过滤是否使用 loadonce: true 通常很慢?
-
@SeanThoman:答案取决于许多细节。网格有 10 列还是 40 列?网格有 100 行还是 10000 行?
columnModel、onLoadComplete和onGridComplete中的许多实现细节会使网格上的工作变得缓慢。我想你需要解决你的问题并且对共同讨论不太感兴趣。在这种情况下,您应该发布有关您的实施的更多详细信息。 -
@SeanThoman 我不确定这是否有帮助。但是SlickGrid 为更大的网格提供了比任何其他免费替代方案更好的客户端性能。
标签: javascript jquery html performance jqgrid