【问题标题】:JQGrid paging very slow after applying filter via filter toolbar通过过滤器工具栏应用过滤器后,JQGrid 分页非常慢
【发布时间】: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 等)之前,单击分页按钮会有延迟。

请注意,一旦网格完成,数据类型属性将设置为“本地”。

我的猜测是它会在您每次页面时尝试过滤(或者它一次只过滤一页?不确定)。但是可以禁用吗?

谢谢。

【问题讨论】:

  • 你有这方面的活生生的例子吗?
  • 问题的根源可能是onLoadCompleteonGridComplete 函数。为什么你需要这两个功能而不是只使用onLoadComplete?为什么你使用datatype 作为函数?此外,您使用已发布的colModel 就像columnModel 一样。需要了解您所做的工作才能为您提供帮助。您能否在问题中包含更多详细信息(包含代码)。最好的是重现您遇到的问题的演示,
  • 我认为 Enzino 发布的内容可能是问题所在……客户端过滤是否使用 loadonce: true 通常很慢?
  • @SeanThoman:答案取决于许多细节。网格有 10 列还是 40 列?网格有 100 行还是 10000 行? columnModelonLoadCompleteonGridComplete 中的许多实现细节会使网格上的工作变得缓慢。我想你需要解决你的问题并且对共同讨论不太感兴趣。在这种情况下,您应该发布有关您的实施的更多详细信息。
  • @SeanThoman 我不确定这是否有帮助。但是SlickGrid 为更大的网格提供了比任何其他免费替代方案更好的客户端性能。

标签: javascript jquery html performance jqgrid


【解决方案1】:

您可能想考虑使用 DataTables (http://www.datatables.net) 作为替代品。排序是,我相信整个数据集(这会使处理这个脚本变得非常慢——然后绑定事件)。我最近研究了表格排序和网格布局的选项——由于性能问题,我使用 DataTables 而不是 jqGrid。

此外,看看获取最新版本是否有助于加快速度...http://www.trirand.com/blog/(6 月发布新版本)。

【讨论】:

    【解决方案2】:

    如果您愿意使用其他网格库,我建议您查看SlickGrid

    我已经使用了一段时间了。似乎是同类 JavaScript 网格库中最好的。 一旦你掌握了它,它就很容易定制并且已经有相当多的插件了。

    【讨论】:

    • 虽然有很多代码(单独的文件/http请求)。另外,作者应该在 repo 中添加一个 README.md 文件。
    • @JoeJohnson 我假设您最终会在构建过程中使用 JS、CSS 缩小器,例如 YUI compressorClosure CompilerWRO4J 之类的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多